Internationalization

RSS for tag

Make your app available to an international audience by adapting it to multiple languages, regions, and cultures.

Posts under Internationalization tag

35 Posts
Sort by:

Post

Replies

Boosts

Views

Activity

ITMS-90176: Unrecognized Locale
Our application should support locales for Albanian and Albanian(Kosovo). Xcode creates sq.lproj and sq-XK.lproj folders accordingly Everything works fine in xcode, but if we upload to appstore we always see this warning. I tried specifying other names for sq-XK to match https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPInternational/LanguageandLocaleIDs/LanguageandLocaleIDs.html aln, sq-RS, sq-KV, sq-KS, sq-Latn-XQ. The varning was always present. Is there any way to get rid of it? WARNING ITMS-90176: "Unrecognized Locale - The locale used in localization directories at ("Payload/{AppName}.app/base.lproj") are invalid. iTunes supports BCP47 but not the UN M.49 specification. Refer to the Language and Locale Designations guide for more information on naming your language-specific directories."
4
1
1k
Nov ’23
Can non-Apple apps use user preferred term of address?
Hello folks! I am looking into how to personalize my app based on iPhone user preferred term of address using TermOfAddress API (1, 2). If I understand correctly, to use the API for personalization purposes the app should know user's selection (masculine, feminine, neuter). What I don't understand is whether there is an API allowing to get user term of address which they set in their iPhone settings for 3P apps. So the flow I am thinking of is: User sets their preferred term of address in device settings My app somehow is able to retrieve it and use TermsOfAddress concept to serve proper message in Spanish ("Bienvenido a mi aplicación!" for masculine vs "Bienvenida a mi aplicación!" for feminine vs "Les doy la bienvenida a mi aplicación" for neutral). Apple support docs say "Your preferred form of address. (Choose feminine, masculine, or neutral. Turn on Share with All Apps so all apps personalize how they address you. Available for some primary languages, for example, Spanish.)". So I assume that there is a way for apps to retrieve this information. But I can't find any API for that. Any thoughts on this? I wonder if "Share with all apps" means "Share with all 1P apps" and 3P apps can not use it (which means I have to ask user for their term of address from my app)? Thanks!
1
0
498
Oct ’23
NumberFormatter unable to parse string output that it created
I'm currently adding support for different locales in my app, and one of the things I need to do is let folks input a valid decimal number. In order to do this I'm using a NumberFormatter with some specific settings: numberFormatter.locale = .current numberFormatter.maximumFractionDigits = 2 numberFormatter.minimumFractionDigits = 2 numberFormatter.numberStyle = .decimal numberFormatter.roundingMode = .halfEven numberFormatter.usesGroupingSeparator = true When the locale is set to en-GB or en-US, everything works fine. I'm successfully able to output values as strings, and then use the same number formatter to parse the string back into an NSNumber. However, if the locale is for a region where spaces are used as a grouping separator, everything breaks. The number formatter will happily output a value like 1 234.56 via string(from:), but it will fail to parse that exact string as a number using number(from:). After digging a bit deeper I discovered that, if I create a locale that uses spaces as the grouping separator and check: numberFormatter.groupingSeparator The output will be a 0x202f character (NARROW NO-BREAK SPACE). If I use that same number formatter to output a string value, the space it inserts in 1 000,00 is actually 0xa0. I think this is why the number formatter's output can't be parsed as valid input, but I'm not sure how to work around this situation. I ideally need to be able to parse "prettified" values that users have entered in their own locale, so I can't just set the number formatter to always use , as the grouping separator for example. Any advice would be much appreciated!
1
0
634
Oct ’23
Make my app findable on search results
Hi all, My app is available in English and Arabic. However, when searching for the app in iOS App Store, by typing the app name in Arabic, it does not show up in the suggested apps. This occurs in English but also Arabic phone/app configuration. On the other hand, on Android I don't have this issue. Do you know what to do to fix this? We have already added the app name in the AR app store keywords / description, but it did not help as it's still not showing up. Thank you
3
0
539
Oct ’23
Key equivalent matching for non-Roman layouts
What's the right way to implement key equivalent matching that handles non-Roman/Latin layouts? E.g. pressing Cmd+Option+C in a Greek layout produces an NSEvent with chars="ç" unmodchars="ψ", neither of which is going to match a key equivalent of Cmd+Option+C by simile comparison, yet performKeyEquivalent on a button with that exact key equivalent returns YES and activates the button. How would someone replicate that? [NSEvent charactersByApplyingModifiers:] also reports "ç", and so does UCKeyTranslate. Yet the Keyboard Viewer shows a modifier layer with "c", not the "ç" that the event reports:
0
0
540
Oct ’23
Punctuation missing from system font when Chinese language is selected
Dear experts, I get glyphs from the system font using CTFontGetGlyphsForCharacters, something like this: UIFont* uifont = [UIFont monospacedDigitSystemFontOfSize: s weight: w]; CTFontRef font = (__bridge CTFontRef)uifont; CTFontGetGlyphsForCharacters(font, ....); The characters that I ask for are basically latin-1 plus a few others. The app is not localised for Chinese. When I change the phone's default language to Chinese, this code gets glyphs for most characters OK but it fails for a few punctuation symbols: 91 = [ 93 = ] 183 = middle dot 8220 = left double curly quote 8221 = right double curly quote Can anyone guess what's going on here? What's special about those characters? Thanks, Phil.
0
0
576
Sep ’23
Separate App versions per region
Due to our app having different government clearances in each geographical region, we are required to have a different version in each region. While the apps are all fundamentally the same, is there any reason we can't have: OurApp US - available in US OurApp UK - available in UK only OurApp EU - available in EU only While I understand how to implement this, there is concern that the subsequent submissions might be flagged incorrectly by the 4.3 Spam rule. Users would never see more than one version of our app in their region's App Store. Does anyone have any knowledge or experience here? Is this kind of release strategy acceptable?
0
4
554
Sep ’23
How to ignore the safe area when using keyboardLayoutGuide
I have a full screen list and want to use the new keyboardLayoutGuide constraint, but by default it uses the safe area inset. How can I disable this so my list goes all the way to the bottom of the screen when the keyboard is not shown? NSLayoutConstraint.activate([ collectionView.topAnchor.constraint(equalTo: view.topAnchor), collectionView.bottomAnchor.constraint(equalTo: view.keyboardLayoutGuide.topAnchor), collectionView.leadingAnchor.constraint(equalTo: view.leadingAnchor), collectionView.trailingAnchor.constraint(equalTo:  view.trailingAnchor) ])
3
1
2.4k
Aug ’23
Date and time getting fail to convert in 24 hour, after change format in 12 hour from device setting
I have been working on a Calendar App. i am getting date format 2023-08-25T7:07:00 pm which is not parsing in any date format. Required Output: 2023-08-25T19:07:00 Getting fail with all date formatter Here is the my code snippet let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd'T'hh:mm:ss a" dateFormatter.locale = Locale(identifier: "en_US_POSIX") dateFormatter.timeZone = TimeZone.current if let date = dateFormatter.date(from: dateString) { let formattedDateString = dateFormatter.string(from: date) print(formattedDateString) } else { print("Invalid date format") } Help me on this.
2
0
515
Aug ’23
App managed by 2 organizations/ App management for different countries
Hello, I have an app which offers content and users can have access through a montly subscription în app. We plan to expand in a different Country in which we need a different Organization as owner of the app and the revenue genereted from users in the new released country should go to the new organization. If there a way to keep the same app in store but to have multiple entities to manage them for different countries??
0
0
517
Aug ’23
App is terminated when user changes language
Dear Experts, NSLocale has a notification NSCurrentLocaleDidChangeNotification and a property autoupdatingCurrentLocale ("A locale which tracks the user’s current preferences"). These suggest that an app should be able to detect when the user changes their language preference while running, or when it is resumed from the background. In practice, when I change language in the Settings app (either globally or just for my app), the app is terminated by iOS and restarts with new locale. Is this the expected behaviour? I am wondering if there is something I need to do to advertise that the app can adopt language changes without restarting, or something. Maybe only date-time formats, etc., trigger the notification but language changes don't?
2
0
897
Jul ’23