Explore best practices for creating inclusive apps that cater to users with diverse abilities

Learn More

Posts under General subtopic

Post

Replies

Boosts

Views

Activity

Localization on swift
Dear experts - Currently, I am trying to use localize feature on swift. Actually, i can change the display language when the iphone default langauge had been changed. However, I want to provide UI (like picture as follow link http://tinypic.com/r/fw3cyu/8) to let user to select the display language. How to do it? Please give me some hints. Thank you.RegardsTommy
3
0
10k
Mar ’23
Is the Ainu Language supported ?
Hello or Iranqarahte-e in Ainu of Japan Aynu itah -itaq-k = language Those who use Japanese and Kotoeri there is a icon in the text menu in screen shot below.Ainu is written in Katakana アaイiヌnu イiタtaㇰk = Aynu itah/itaq/k or Roman =Aynu itah -itaq-k when using this setting you press A, i ,n ,u , keys it will convert into Katakana some Japanese prefer Katakana others prefer Roman the problem with Katakana it does not represent final letter and must use a special small letter or syllable kaカ , kiキ ,ku ク,ke ケ,ko コ. i イ is ok and ta タ,but final ku ク is not ㇰk is used ,hence the conversion itah q are variations. that is the only support Apple has for Ainu.At present some Japanese and Ainu are trying to get J apanese I ndustrial S tandards to get it into the platforms then we need Apple i/OS/X dictionaries ,Siri, predictive writing text,Grammar spell checker Google translate,Google ermersion. there is a lot of Ainu ( mostly roman script ) written online mixed with Japanese ,this is mostly historical text and some blogs and dictionaries ( Ihave spent years researching books and online material )now we have an online dictionary http://ainutopic.ninjal.ac.jp/en/,but does not work on iOS. The main problem is the various dialects, syntax ,words ,spelling, pronunciation and natives speakers of Ainu language , now only a handful of bi-lingual Japanese and Ainu native speakers,they are very old most thousands of Ainu speak Japanese as first language and some a little Ainu are a few , Some book dictionaries and text ,bible written by Batchelor a near native speaker 60 years. last century. with the argument Apple may not support i/OS/X dictionaries ,Siri, predictive writing text,Grammar spell checker. Iaim to go further and like to have Ainu i/O S /X bi-lingual interface or Help tags on icons emoji and text on menu ,we point our mouse pointer and a yellow help tag pops up and shows the word in the bi -lingual ( if it is icon only) language of our choice. all text can be linked to an Apple bi- directional dictionary Japanese ( with furigana ) Ainu ( sometimes Ido not know the criteria for Help tags ,some are obvious Reader Show reader ! some icons + do not have help tags and where is the explanation ? and you can make the cursur big and you can not see the tags! so is that a solution ? apart from computer terms Ainu does not have language terms , as well we need to translate the teaching of code into Ainu code to protect the Ainu langauge in the future Ainu needs to be written on computer and collected as raw data for making a Google translate and dictionary and teaching writing and then Siri or speech software to do dictation and some way to read all the written ainu on the web. the biggest challenge is the Ainu grammar for a software writer- Ainu itah /eywanqe an ro . a simple sentence Let's use /speak Ainu !
1
0
2k
Nov ’21
Incorrect localization for NSLocationWhenInUseUsageDescription
Greetings allI have an app whose development language is French, which is also its base localization. I also localise it to English.The app makes use of both location services and the calendar.I have created an InfoPlist.strings file and localized both NSCalendarsUsageDescription and NSLocationWhenInUseUsageDescription.My problem is that, although the Base localization (French) of NSCalendarsUsageDescription is correctly used when requesting permission, I can only ever see the French text for NSLocationWhenInUseUsageDescription if I remove the key from the English version of InfoPlist.strings.Many thanks for any help you can give me.
1
0
1.4k
Oct ’21
User interface in Ainu.
I have mulling over this for many years ,Uralic and Siberian language user interface Support.Ainu of Japan is only supported by writing roman and rendering into Katakana with a few small modified characters there is no user interface ,spell,grammar checker,dictionary ,translator ,of course the Ainu has few terms in modern vocabulary but Iam studying the language in order to find words and coin new ones, iPhone hoomi-ye-p electric speak thing. I am looking for other peple who have the same idea.
3
1
1.4k
Oct ’24
iOS 10 Temperature Unit
Hi. iOS 10 has a new setting 'Temperature Unit'. Users can choose a temperature unit, independent of their Locale/Region.I had found this blog post, which explained how to get it's value: http://blog.timac.org/?tag=nslocaletemperatureunit. And it works great. I modified it a little bit so that it would be backwards compatible from iOS8 up to iOS10.However... When I submitted my app to Testflight, the app was rejected for the reason: "The app references non-public symbols in [app-name]: _NSLocaleTemperatureUnit"That's rather disappointing, because I know of no other way to find out what the user entered for this setting. I am 100% sure that users WILL change this setting, and then be disappointed that my app only looks at the region to determine if Celcius or Fahenrheit should be used.Is there any official solution for this predicament?Please check here what I did: http://stackoverflow.com/questions/39727075/determine-users-temperature-unit-setting-on-ios-10-celsius-fahrenheit
10
0
8.1k
Sep ’21
Positional parameters and stringsdict
Hi.I was trying to do internationalization friendly pluralization in my code.My source string looks like this:NSString *fromString = [NSString localizedStringWithFormat:NSLocalizedString(@"%@ + %d other(s)", @"The from field for the message cell"), senderName, numberOfParticipants];And I added the following to the stringsdict file for the project:<key>%@ + %d other(s)</key> <dict> <key>NSStringLocalizedFormatKey</key> <string>%#@others@</string> <key>others</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>NSStringFormatValueTypeKey</key> <string>d</string> <key>zero</key> <string>%@</string> <key>one</key> <string>%@ + %d other</string> <key>other</key> <string>%@ + %d others</string> </dict> </dict>But the only string that was being displayed was from the other category.John Doe + 0 othersJohn Doe + 1 othersJohn Doe + 2 othersAfter some trial and error my source string ended up like this:NSString *fromString = [NSString localizedStringWithFormat:NSLocalizedString(@"%2$@ + %1$d other(s)", @"The from field for the message cell"), numberOfParticipants, senderName];My stringsdict I formatted it like this:<key>%2$@ + %1$d other(s)</key> <dict> <key>NSStringLocalizedFormatKey</key> <string>%#@others@</string> <key>others</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>NSStringFormatValueTypeKey</key> <string>d</string> <key>zero</key> <string>%2$@</string> <key>one</key> <string>%2$@ + %1$d other</string> <key>other</key> <string>%2$@ + %1$d others</string> </dict> </dict>This gave me:John DoeJohn Doe + 1 otherJohn Doe + 2 othersI'm really skeptical of calling it a solution. It seems like you should be able to specify the position of the parameter to read for the count of items, but I can't find any example or documentation which can enlighten me. The internaionalization guide only deals with simple strings with zero or one replacement parameters, the documentation for localizedStringWithFormat doesn't mention any special handling for pluralization.What am I doing wrong?
6
0
4.4k
Dec ’22
Launchscreen ignoring my localization
Hi everyone!I`m having an odd problem with localization. I localized my app to English and Brazilian Portuguese. They both work fine, except for the launch screen.It ignores completely my localization in Pt-Br. I have just a label on it with a loading message. I've tried both strings and storyboards files with no use. Only the english is loaded. Do you guys have any idea why this is happening?Thanks!Danilo
9
0
11k
Apr ’22
Export For Localization with multiple targets
I have multiple targets in my app: targetA and targetB. Whenever i "Export For Localization", the .xliff generated will cointain translations for:1) Main.storyboard2) targetA/InfoPlist.strings3) targetB/InfoPlist.strings4) targetA/Localizable.strings5) targetB/Localizable.stringsI want to avoid multiple Localizable.strings, and multiple InfoPlist.strings. We do not need one localization per target.Any way i can force the "Export For Localization", to create a .xliff that only contains one Localizable.strings and one InfoPlist.strings?
9
1
7.4k
Sep ’23
Invalid value for purpose string in info.plist
In the most recent submission of my React Native iOS app to Appstore Connect, I recieved the following notification via email from Appstore Connect:Dear Developer,We identified one or more issues with a recent delivery for your app, "eSELFSERVE". Your delivery was successful, but you may wish to correct the following issues in your next delivery:Invalid value for purpose string - The value 'NSLocationAlwaysUsageDescription' for Info.plist NSLocationAlwaysUsageDescription is not allowed. Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSLocationAlwaysUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data.After you’ve corrected the issues, you can use Xcode or Application Loader to upload a new binary to App Store Connect.Best regards,The App Store TeamThey seem like contradictory errors and I am not sure how to solve them. Here is a fragment from my MyProject/Info.plist:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> ... <key>NSLocationUsageDescription</key> <string>NSLocationUsageDescription</string> <key>NSLocationAlwaysUsageDescription</key> <string>NSLocationAlwaysUsageDescription</string> <key>NSLocationWhenInUseUsageDescription</key> <string>NSLocationWhenInUseUsageDescription</string> ... </dict> </plist>Here is a fragment from en.lproj/InfoPlist.strings:... NSLocationUsageDescription = "This app records your location when clocking in and out. Clocking in through this app may be rejected if location information is not provided."; NSLocationWhenInUseUsageDescription = "This app records your location when clocking in and out. Clocking in through this app may be rejected if location information is not provided."; NSLocationAlwaysUsageDescription = "This app records your location from time to time to expedite clocking in and out. Clocking in through this app may be rejected if location information is not provided."; ...Here is a fragment es.lproj/InfoPlist.stings:... NSLocationUsageDescription = "Esta aplicación registra su ubicación cuando entra y sale. Entrando usando esta aplicación puede ser rechazado si no se proporciona información de ubicación."; NSLocationWhenInUseUsageDescription = "Esta aplicación registra su ubicación cuando entra y sale. Entrando usando esta aplicación puede ser rechazado si no se proporciona información de ubicación."; NSLocationAlwaysUsageDescription = "Esta aplicación registra su ubicación de vez en cuando para agilizar el registro de entrada y salida. Entrando usando esta aplicación puede ser rechazado si no se proporciona información de ubicación."; ...I am also using the geolocation module of React Native 0.59.1.
3
0
9k
Jun ’23
VoiceOver times read out as numbers
We format times in a localized way using the DateFormatter APIs.DateFormatter.localizedString(from: date, dateStyle: .none, timeStyle: .short)However if the result of this localization is say "22:00" VoiceOver just reads this out as "22". The VoiceOver user is given no indication that this numeric value is a time of the day.I've read online that one approach is to use DateComponentsFormatter and the spellOut unitsStyle e.g.let hourComponents = Calendar.current.dateComponents([.hour, .minute], from: date) cell.accessibilityLabel = DateComponentsFormatter.localizedString(from: hourComponents, unitsStyle: .spellOut)But again for a time "22:00" this reads out "22 hours". Sure if gives more context that this is related to time but it doesn't really indicate it is a time of the day i.e. it could be an interval (22 hours until something happens).We've trawled through the Apple documenation but we can't find anything that covers this.The best possible workaround we've found would be to force the accessibility label to be read out in 12 hour time i.e.let dateFormatter = DateFormatter() dateFormatter.setLocalizedDateFormatFromTemplate("hh:mm") accessibilityLabel =dateFormatter.string(from: date)that way it is clear to the user that it is a time of the day. Although this approach has the downside that ignores the user's preference of a 24 hour or 12 hour time display.The VoiceOver readout is handled perfectly in the Calendar app. It reads out "10 o'clock" and "22 hundred hours" in English and it is fully localized so for example it reads out "midi" for 12:00pm in French. It is possible that this is being done with private APIs though.So my question is, what is the recommended approach for formatting times for VoiceOver?
9
0
6.6k
1w
TestFlight says minimum age is 13 and doesn‘t let me enter althoug I‘m 14.
I have had my Apple ID for quite some time now, I‘m 14 and my age is correctly put in in my apple account. When i try to use TestFlight( it‘s already installed) by clicking „continue“ or „Fortfahren“ (I‘m german) it tells me that the minimum age for Beta testing is 13 and does not let me test app-Betas. Does anyone have a solution other than reinstalling the app (I‘ve already done that)? With best regards dehrens
7
3
8.6k
Oct ’22
Large Content Viewer in SwiftUI
Is there a good alternative to UILargeContentViewerInteraction - https://developer.apple.com/documentation/uikit/uilargecontentviewerinteraction/ in SwiftUI? I know that TabBar - https://developer.apple.com/documentation/swiftui/tabview has support for the large content viewer, but I'm not sure how to implement it in a custom control. Any ideas? I've tried adding UILargeContentViewerInteraction to a UIKit wrapper, but I must've been doing that wrong because all it did was interrupt long presses. Thanks!
1
0
1.2k
Jul ’22
Info.plist localization strings
We are developing application for Ios using Unity and struggling with adding localization for info.plist usage descriptions(NSCameraUsageDescription, NSMicrophoneUsageDescription, NSPhotoLibraryUsageDescription). Localization is added accordingly to the guide outlined here https://developer.apple.com/documentation/xcode/adding-support-for-languages-and-regions, but it doesn't work for us. On device with system language in Ukrainian we getting English localization. In project we added localization for Ukrainian and Russian. Any recommendations on resolving this issue?
6
0
11k
Nov ’21
Generating strings file with genstrings
Hey all, I'm developing a fully programmatically app (not sure if it matters) and get to the point where I want to localize it. Most of my strings are look like this: swift cell.label.text = localized("Hello world") where localized() is just a wrapper around NSLocalizedString(): swift func localized(_ string: String) - String {     return NSLocalizedString(string, comment: "") } So, I added desirable languages to my project and created *.strings file, but when I do bash find ./ -name "*.swift" -exec echo {} \; -exec genstrings -s localized -a -o Resources/en.lproj {} \; I get a lot of errors: genstrings: error: bad entry in file ./bla-bla/myfile.swift (line = 30): Argument is not a literal string. So, it seems that genstrings doesn't work with wrappers, though the man states: s routine [-s routine ...] Recognizes routine() as equivalent to NSLocalizedString(). For example, -s MyLocalString will catch calls to MyLocalString(), MyLocalStringFromTable(), and so on. Am I missing something? Is there any way to generate a strings file except looking for some better tools on GitHub/creating my own?
5
0
3.4k
Nov ’22
VoiceOver Announces Element Twice on After Posting screenChanged
VoiceOver announces the accessibility information for an element twice when I shift focus to that element. I set the focus using: UIAccessibility.post(notification: .screenChanged, argument: accessibilityElement) This is invoked at the dismissal of a modal view, after the accessibility value of the element has been changed. When the element receives focus, VoiceOver announces the element and it's old value, then announces the element and it's new value. Is there a way to prevent VoiceOver from announcing the element the first time? I only want this to happen after the new value has been set.
1
1
2.0k
Jun ’23
Wrong InfoPlist.strings file used by the app
I recently added a new language to my app and I have an issue regarding the localization. Configuration: I have the developmentRegion in "fr" and setup 2 localizations: "French: Development language" and "Danish" The goal is to have the application in Danish language if the preferred language is Danish and French otherwise. Issue: If French or Danish appear in my preferred languages, I have no problem. But if neither French nor Danish was set as preferred language (like only English), I have the app translation in French as expected but all strings regarding app permission like "NSLocationWhenInUseUsageDescription" in system modal alert are in Danish. Is like the localizable.strings file used is in the "fr.lproj" and the InfoPlist.strings is the "da.lproj" debug I verify I have all the strings files at the right repository. I have: fr.lproj -- Localizable.strings -- InfoPlist.strings da.lproj -- Localizable.strings -- InfoPlist.strings I verify the file architecture in the .app file: find ***.app -name "*.strings" xxx.app/fr.lproj/InfoPlist.strings xxx.app/da.lproj/InfoPlist.strings xxx.app/fr.lproj/Localizable.strings xxx.app/da.lproj/Localizable.strings Finally I print the Bundle.main.localizedInfoDictionary and I have values of the French file but the application show the Danish ones Thanks for the help.
6
0
2.5k
Sep ’23
Localization on swift
Dear experts - Currently, I am trying to use localize feature on swift. Actually, i can change the display language when the iphone default langauge had been changed. However, I want to provide UI (like picture as follow link http://tinypic.com/r/fw3cyu/8) to let user to select the display language. How to do it? Please give me some hints. Thank you.RegardsTommy
Replies
3
Boosts
0
Views
10k
Activity
Mar ’23
Is the Ainu Language supported ?
Hello or Iranqarahte-e in Ainu of Japan Aynu itah -itaq-k = language Those who use Japanese and Kotoeri there is a icon in the text menu in screen shot below.Ainu is written in Katakana アaイiヌnu イiタtaㇰk = Aynu itah/itaq/k or Roman =Aynu itah -itaq-k when using this setting you press A, i ,n ,u , keys it will convert into Katakana some Japanese prefer Katakana others prefer Roman the problem with Katakana it does not represent final letter and must use a special small letter or syllable kaカ , kiキ ,ku ク,ke ケ,ko コ. i イ is ok and ta タ,but final ku ク is not ㇰk is used ,hence the conversion itah q are variations. that is the only support Apple has for Ainu.At present some Japanese and Ainu are trying to get J apanese I ndustrial S tandards to get it into the platforms then we need Apple i/OS/X dictionaries ,Siri, predictive writing text,Grammar spell checker Google translate,Google ermersion. there is a lot of Ainu ( mostly roman script ) written online mixed with Japanese ,this is mostly historical text and some blogs and dictionaries ( Ihave spent years researching books and online material )now we have an online dictionary http://ainutopic.ninjal.ac.jp/en/,but does not work on iOS. The main problem is the various dialects, syntax ,words ,spelling, pronunciation and natives speakers of Ainu language , now only a handful of bi-lingual Japanese and Ainu native speakers,they are very old most thousands of Ainu speak Japanese as first language and some a little Ainu are a few , Some book dictionaries and text ,bible written by Batchelor a near native speaker 60 years. last century. with the argument Apple may not support i/OS/X dictionaries ,Siri, predictive writing text,Grammar spell checker. Iaim to go further and like to have Ainu i/O S /X bi-lingual interface or Help tags on icons emoji and text on menu ,we point our mouse pointer and a yellow help tag pops up and shows the word in the bi -lingual ( if it is icon only) language of our choice. all text can be linked to an Apple bi- directional dictionary Japanese ( with furigana ) Ainu ( sometimes Ido not know the criteria for Help tags ,some are obvious Reader Show reader ! some icons + do not have help tags and where is the explanation ? and you can make the cursur big and you can not see the tags! so is that a solution ? apart from computer terms Ainu does not have language terms , as well we need to translate the teaching of code into Ainu code to protect the Ainu langauge in the future Ainu needs to be written on computer and collected as raw data for making a Google translate and dictionary and teaching writing and then Siri or speech software to do dictation and some way to read all the written ainu on the web. the biggest challenge is the Ainu grammar for a software writer- Ainu itah /eywanqe an ro . a simple sentence Let's use /speak Ainu !
Replies
1
Boosts
0
Views
2k
Activity
Nov ’21
Incorrect localization for NSLocationWhenInUseUsageDescription
Greetings allI have an app whose development language is French, which is also its base localization. I also localise it to English.The app makes use of both location services and the calendar.I have created an InfoPlist.strings file and localized both NSCalendarsUsageDescription and NSLocationWhenInUseUsageDescription.My problem is that, although the Base localization (French) of NSCalendarsUsageDescription is correctly used when requesting permission, I can only ever see the French text for NSLocationWhenInUseUsageDescription if I remove the key from the English version of InfoPlist.strings.Many thanks for any help you can give me.
Replies
1
Boosts
0
Views
1.4k
Activity
Oct ’21
User interface in Ainu.
I have mulling over this for many years ,Uralic and Siberian language user interface Support.Ainu of Japan is only supported by writing roman and rendering into Katakana with a few small modified characters there is no user interface ,spell,grammar checker,dictionary ,translator ,of course the Ainu has few terms in modern vocabulary but Iam studying the language in order to find words and coin new ones, iPhone hoomi-ye-p electric speak thing. I am looking for other peple who have the same idea.
Replies
3
Boosts
1
Views
1.4k
Activity
Oct ’24
iOS 10 Temperature Unit
Hi. iOS 10 has a new setting 'Temperature Unit'. Users can choose a temperature unit, independent of their Locale/Region.I had found this blog post, which explained how to get it's value: http://blog.timac.org/?tag=nslocaletemperatureunit. And it works great. I modified it a little bit so that it would be backwards compatible from iOS8 up to iOS10.However... When I submitted my app to Testflight, the app was rejected for the reason: "The app references non-public symbols in [app-name]: _NSLocaleTemperatureUnit"That's rather disappointing, because I know of no other way to find out what the user entered for this setting. I am 100% sure that users WILL change this setting, and then be disappointed that my app only looks at the region to determine if Celcius or Fahenrheit should be used.Is there any official solution for this predicament?Please check here what I did: http://stackoverflow.com/questions/39727075/determine-users-temperature-unit-setting-on-ios-10-celsius-fahrenheit
Replies
10
Boosts
0
Views
8.1k
Activity
Sep ’21
Positional parameters and stringsdict
Hi.I was trying to do internationalization friendly pluralization in my code.My source string looks like this:NSString *fromString = [NSString localizedStringWithFormat:NSLocalizedString(@"%@ + %d other(s)", @"The from field for the message cell"), senderName, numberOfParticipants];And I added the following to the stringsdict file for the project:<key>%@ + %d other(s)</key> <dict> <key>NSStringLocalizedFormatKey</key> <string>%#@others@</string> <key>others</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>NSStringFormatValueTypeKey</key> <string>d</string> <key>zero</key> <string>%@</string> <key>one</key> <string>%@ + %d other</string> <key>other</key> <string>%@ + %d others</string> </dict> </dict>But the only string that was being displayed was from the other category.John Doe + 0 othersJohn Doe + 1 othersJohn Doe + 2 othersAfter some trial and error my source string ended up like this:NSString *fromString = [NSString localizedStringWithFormat:NSLocalizedString(@"%2$@ + %1$d other(s)", @"The from field for the message cell"), numberOfParticipants, senderName];My stringsdict I formatted it like this:<key>%2$@ + %1$d other(s)</key> <dict> <key>NSStringLocalizedFormatKey</key> <string>%#@others@</string> <key>others</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>NSStringFormatValueTypeKey</key> <string>d</string> <key>zero</key> <string>%2$@</string> <key>one</key> <string>%2$@ + %1$d other</string> <key>other</key> <string>%2$@ + %1$d others</string> </dict> </dict>This gave me:John DoeJohn Doe + 1 otherJohn Doe + 2 othersI'm really skeptical of calling it a solution. It seems like you should be able to specify the position of the parameter to read for the count of items, but I can't find any example or documentation which can enlighten me. The internaionalization guide only deals with simple strings with zero or one replacement parameters, the documentation for localizedStringWithFormat doesn't mention any special handling for pluralization.What am I doing wrong?
Replies
6
Boosts
0
Views
4.4k
Activity
Dec ’22
Launchscreen ignoring my localization
Hi everyone!I`m having an odd problem with localization. I localized my app to English and Brazilian Portuguese. They both work fine, except for the launch screen.It ignores completely my localization in Pt-Br. I have just a label on it with a loading message. I've tried both strings and storyboards files with no use. Only the english is loaded. Do you guys have any idea why this is happening?Thanks!Danilo
Replies
9
Boosts
0
Views
11k
Activity
Apr ’22
Export For Localization with multiple targets
I have multiple targets in my app: targetA and targetB. Whenever i "Export For Localization", the .xliff generated will cointain translations for:1) Main.storyboard2) targetA/InfoPlist.strings3) targetB/InfoPlist.strings4) targetA/Localizable.strings5) targetB/Localizable.stringsI want to avoid multiple Localizable.strings, and multiple InfoPlist.strings. We do not need one localization per target.Any way i can force the "Export For Localization", to create a .xliff that only contains one Localizable.strings and one InfoPlist.strings?
Replies
9
Boosts
1
Views
7.4k
Activity
Sep ’23
Invalid value for purpose string in info.plist
In the most recent submission of my React Native iOS app to Appstore Connect, I recieved the following notification via email from Appstore Connect:Dear Developer,We identified one or more issues with a recent delivery for your app, "eSELFSERVE". Your delivery was successful, but you may wish to correct the following issues in your next delivery:Invalid value for purpose string - The value 'NSLocationAlwaysUsageDescription' for Info.plist NSLocationAlwaysUsageDescription is not allowed. Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSLocationAlwaysUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data.After you’ve corrected the issues, you can use Xcode or Application Loader to upload a new binary to App Store Connect.Best regards,The App Store TeamThey seem like contradictory errors and I am not sure how to solve them. Here is a fragment from my MyProject/Info.plist:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> ... <key>NSLocationUsageDescription</key> <string>NSLocationUsageDescription</string> <key>NSLocationAlwaysUsageDescription</key> <string>NSLocationAlwaysUsageDescription</string> <key>NSLocationWhenInUseUsageDescription</key> <string>NSLocationWhenInUseUsageDescription</string> ... </dict> </plist>Here is a fragment from en.lproj/InfoPlist.strings:... NSLocationUsageDescription = "This app records your location when clocking in and out. Clocking in through this app may be rejected if location information is not provided."; NSLocationWhenInUseUsageDescription = "This app records your location when clocking in and out. Clocking in through this app may be rejected if location information is not provided."; NSLocationAlwaysUsageDescription = "This app records your location from time to time to expedite clocking in and out. Clocking in through this app may be rejected if location information is not provided."; ...Here is a fragment es.lproj/InfoPlist.stings:... NSLocationUsageDescription = "Esta aplicación registra su ubicación cuando entra y sale. Entrando usando esta aplicación puede ser rechazado si no se proporciona información de ubicación."; NSLocationWhenInUseUsageDescription = "Esta aplicación registra su ubicación cuando entra y sale. Entrando usando esta aplicación puede ser rechazado si no se proporciona información de ubicación."; NSLocationAlwaysUsageDescription = "Esta aplicación registra su ubicación de vez en cuando para agilizar el registro de entrada y salida. Entrando usando esta aplicación puede ser rechazado si no se proporciona información de ubicación."; ...I am also using the geolocation module of React Native 0.59.1.
Replies
3
Boosts
0
Views
9k
Activity
Jun ’23
VoiceOver times read out as numbers
We format times in a localized way using the DateFormatter APIs.DateFormatter.localizedString(from: date, dateStyle: .none, timeStyle: .short)However if the result of this localization is say "22:00" VoiceOver just reads this out as "22". The VoiceOver user is given no indication that this numeric value is a time of the day.I've read online that one approach is to use DateComponentsFormatter and the spellOut unitsStyle e.g.let hourComponents = Calendar.current.dateComponents([.hour, .minute], from: date) cell.accessibilityLabel = DateComponentsFormatter.localizedString(from: hourComponents, unitsStyle: .spellOut)But again for a time "22:00" this reads out "22 hours". Sure if gives more context that this is related to time but it doesn't really indicate it is a time of the day i.e. it could be an interval (22 hours until something happens).We've trawled through the Apple documenation but we can't find anything that covers this.The best possible workaround we've found would be to force the accessibility label to be read out in 12 hour time i.e.let dateFormatter = DateFormatter() dateFormatter.setLocalizedDateFormatFromTemplate("hh:mm") accessibilityLabel =dateFormatter.string(from: date)that way it is clear to the user that it is a time of the day. Although this approach has the downside that ignores the user's preference of a 24 hour or 12 hour time display.The VoiceOver readout is handled perfectly in the Calendar app. It reads out "10 o'clock" and "22 hundred hours" in English and it is fully localized so for example it reads out "midi" for 12:00pm in French. It is possible that this is being done with private APIs though.So my question is, what is the recommended approach for formatting times for VoiceOver?
Replies
9
Boosts
0
Views
6.6k
Activity
1w
How phone numbers should be read?
I'm not sure how a phone number should be read by VoiceOver. Is there a particular format or API that I can use to read phone numbers in my app? At the moment I'm just assigning the phone number as a String to a UILabel and VoiceOver reads the accessibilityLabel.
Replies
2
Boosts
0
Views
1.6k
Activity
Sep ’23
Problem after upgrade to iOS 14 beta version
i have problem With my some apps after update to iOS 14 beta like viber when I enter to even I can’t touch my screen on my iPhone X some apps running slow after update .what should I have to do ?
Replies
62
Boosts
0
Views
14k
Activity
Dec ’21
In cross-screen navigation, VoiceOver's focus is starting on content on iOS13, not the nav bar
When I’m browsing an application using VoiceOver, the screen reader’s focus starts at random points on the screen, not the navbar’s “Back” button. This happens since iOS 13. Has there been a change in VoiceOver's behavior? Does it recognize user behavior and pattern?
Replies
3
Boosts
1
Views
5.2k
Activity
Jan ’22
TestFlight says minimum age is 13 and doesn‘t let me enter althoug I‘m 14.
I have had my Apple ID for quite some time now, I‘m 14 and my age is correctly put in in my apple account. When i try to use TestFlight( it‘s already installed) by clicking „continue“ or „Fortfahren“ (I‘m german) it tells me that the minimum age for Beta testing is 13 and does not let me test app-Betas. Does anyone have a solution other than reinstalling the app (I‘ve already done that)? With best regards dehrens
Replies
7
Boosts
3
Views
8.6k
Activity
Oct ’22
Large Content Viewer in SwiftUI
Is there a good alternative to UILargeContentViewerInteraction - https://developer.apple.com/documentation/uikit/uilargecontentviewerinteraction/ in SwiftUI? I know that TabBar - https://developer.apple.com/documentation/swiftui/tabview has support for the large content viewer, but I'm not sure how to implement it in a custom control. Any ideas? I've tried adding UILargeContentViewerInteraction to a UIKit wrapper, but I must've been doing that wrong because all it did was interrupt long presses. Thanks!
Replies
1
Boosts
0
Views
1.2k
Activity
Jul ’22
Info.plist localization strings
We are developing application for Ios using Unity and struggling with adding localization for info.plist usage descriptions(NSCameraUsageDescription, NSMicrophoneUsageDescription, NSPhotoLibraryUsageDescription). Localization is added accordingly to the guide outlined here https://developer.apple.com/documentation/xcode/adding-support-for-languages-and-regions, but it doesn't work for us. On device with system language in Ukrainian we getting English localization. In project we added localization for Ukrainian and Russian. Any recommendations on resolving this issue?
Replies
6
Boosts
0
Views
11k
Activity
Nov ’21
Generating strings file with genstrings
Hey all, I'm developing a fully programmatically app (not sure if it matters) and get to the point where I want to localize it. Most of my strings are look like this: swift cell.label.text = localized("Hello world") where localized() is just a wrapper around NSLocalizedString(): swift func localized(_ string: String) - String {     return NSLocalizedString(string, comment: "") } So, I added desirable languages to my project and created *.strings file, but when I do bash find ./ -name "*.swift" -exec echo {} \; -exec genstrings -s localized -a -o Resources/en.lproj {} \; I get a lot of errors: genstrings: error: bad entry in file ./bla-bla/myfile.swift (line = 30): Argument is not a literal string. So, it seems that genstrings doesn't work with wrappers, though the man states: s routine [-s routine ...] Recognizes routine() as equivalent to NSLocalizedString(). For example, -s MyLocalString will catch calls to MyLocalString(), MyLocalStringFromTable(), and so on. Am I missing something? Is there any way to generate a strings file except looking for some better tools on GitHub/creating my own?
Replies
5
Boosts
0
Views
3.4k
Activity
Nov ’22
Blue tooth connection
Any open issues with blue tooth connection on software version 14.4
Replies
1
Boosts
0
Views
1.2k
Activity
Nov ’21
VoiceOver Announces Element Twice on After Posting screenChanged
VoiceOver announces the accessibility information for an element twice when I shift focus to that element. I set the focus using: UIAccessibility.post(notification: .screenChanged, argument: accessibilityElement) This is invoked at the dismissal of a modal view, after the accessibility value of the element has been changed. When the element receives focus, VoiceOver announces the element and it's old value, then announces the element and it's new value. Is there a way to prevent VoiceOver from announcing the element the first time? I only want this to happen after the new value has been set.
Replies
1
Boosts
1
Views
2.0k
Activity
Jun ’23
Wrong InfoPlist.strings file used by the app
I recently added a new language to my app and I have an issue regarding the localization. Configuration: I have the developmentRegion in "fr" and setup 2 localizations: "French: Development language" and "Danish" The goal is to have the application in Danish language if the preferred language is Danish and French otherwise. Issue: If French or Danish appear in my preferred languages, I have no problem. But if neither French nor Danish was set as preferred language (like only English), I have the app translation in French as expected but all strings regarding app permission like "NSLocationWhenInUseUsageDescription" in system modal alert are in Danish. Is like the localizable.strings file used is in the "fr.lproj" and the InfoPlist.strings is the "da.lproj" debug I verify I have all the strings files at the right repository. I have: fr.lproj -- Localizable.strings -- InfoPlist.strings da.lproj -- Localizable.strings -- InfoPlist.strings I verify the file architecture in the .app file: find ***.app -name "*.strings" xxx.app/fr.lproj/InfoPlist.strings xxx.app/da.lproj/InfoPlist.strings xxx.app/fr.lproj/Localizable.strings xxx.app/da.lproj/Localizable.strings Finally I print the Bundle.main.localizedInfoDictionary and I have values of the French file but the application show the Danish ones Thanks for the help.
Replies
6
Boosts
0
Views
2.5k
Activity
Sep ’23