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."
Internationalization
RSS for tagMake 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
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!
My App development language is only Arabic. I am using textField to Login User, whenever user long pressed, ToolTip showed up. Problem is with tool tip text it is flipped. My device language is English
Turn off 24-hour clock in settings
DateFormatter When using HH format without setting Locale, it is provided in AA H format.
Please explain why it works like this
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!
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
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:
This simple text:
Text("10'20\"")
when the localisation is a RightToLeft, like Arabic
on iMac show "20'10
on iOS show 10'20"
Which is the correct one?
Why the are different?
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.
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?
Hi
I have an app in the store that distributed to 2 region(IL and AU)
I want to push another app only to one region (IL)
But, I want the old version stay in AU region
How can I do it?
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)
])
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.
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??
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?