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

144 Posts

Post

Replies

Boosts

Views

Activity

Limit country availability of an app by version
Hi everyone, I have seen some related questions submitted in the past regarding limiting the availability of an app's new version to a specific country alone but I could not find any clear explanation or suggestion to address this question. So, I am posting my question again here for some guidance. Scenario We have an app running globally with Version 1.0 We want to release the Version 2.0 of the same app in US for example and not in any of the countries. The other countries should still see 1.0 version of the app **Why? ** It is not user testing but a country-wise release of the app depending on the regulatory requirements. Some countries take longer to approve than others. Questions Is this possible? If yes, then how can this be done? Thanks for your guidance.
1
0
1.7k
May ’22
App use system language for location authorization dialog
On IOS there is 2 ways to select app language : settings-general -language settings - your app - language if an app require authorisation for localisation like requestWhenInUseAuthorization , the displayed text is always in the language specified by the general language setting. Setting the required string in InfoPlist.strings is not enough and there may be a problem in iOS : once can check this with the Apple official Weather App installed by default on iPhone. How to reproduce : Set your device (general-language) in English. set WeatherApp( settings-weather-language) in French. set weatherApp Location to ask next time. start weather app it will ask for permission with a message in English while all other part of app are in French. I tested with other languages and it is still the same. This may finish in Apple refuse an app in AppStore review process with that « user may expect to have authorisation dialog in the language they choose for the app», but there is nothing that can be done as even Apple Software as the same problem. Have you any workaround like preventing to change app language to something different than system language ? I have already filled a Feedback.
5
1
3.7k
May ’22
Restricting country availability for past releases
Hi, By mistake we originally released our app worldwide, and we'd like to fix this. Currently, our last two releases are restricted the way we'd like, but we'd like to restrict releases before those to be only available in the US. Is there any way to do this? We're not as worried about people who've already downloaded the app, but we'd like older releases not to be visible in the stores for most of the world. Thanks,
2
0
797
Apr ’22
Programmatic way to find the language of an application
Hello, I would like to know if there is any way to programmatically find out the current language of an application(either budle info, plist,any function from CoreFoundation, etc ). Only information I found relating to this is in CFBundleDevelopmentRegion from plist of the app but its not reliable in all cases. We are coding in C++ but we can also run Objective-C code. Thank you in advance!
9
0
3.2k
Apr ’22
DateComponentsFormatter formatted string is not working as expected
Hi! When using string method of DateComponentsFormatter, it gives sometimes an extra unit(2) in the formatted string instead of one. In the following snippet, formattedString gives 213d 1h instead of 213d. let durationShort: DateComponentsFormatter = {     let formatter = DateComponentsFormatter()     formatter.allowedUnits = [.day, .hour, .minute]     formatter.unitsStyle = .abbreviated     formatter.zeroFormattingBehavior = .dropAll     formatter.maximumUnitCount = 3     formatter.collapsesLargestUnit = false     return formatter }() let formattedString = durationShort.string(from: TimeInterval(86400 * 213)) Any idea?
7
0
2.6k
Feb ’22
Apps pane of Language & Region preferences not showing all languages
My AppleScript applet is localized for French, German, Italian and Spanish. The applet displays text in the correct language if the preferred language is changed in the "General" pane of the Language & Region preferences. That is, the applet correctly works in all four languages. However, the "Apps" pane shows Spanish, German and Italian but, does not show French. For example: Why would the "Apps" pane not show all languages for which the applet is localized ? Thanks late 2015 iMac 27", macOS 12.2.1
4
0
1.7k
Feb ’22
Custom fonts & support for many languages
My language learning app needs to support a lot of languages and text paragraphs containing 2 different languages are not uncommon. (e.g. German grammar explained in Arabic) Now, I want to integrate a custom font to make the design unique and consistent across multiple platforms (iOS, Android, Web), but there is basically no single Font that supports all languages. The question is: What is the recommended way of implementing that on the code level in SwiftUI? If I just hardcode: .font(Font.custom("myFont", size: 16)) then I guess it is not gonna work if the text contains a language not supported by my custom font. The Apple's default font seems to handle all languages perfectly, even if they are mixed together and I'd like to have something like that, but with a custom font. Specifically, I'd like to integrate FF Din font: https://www.myfonts.com/fonts/fontfont/ff-din/ with supported Languages: Western Europe, Vietnamese, Central/Eastern Europe, Baltic, Turkish, Romanian, Cyrillic, Greek So I am wondering what I would do about Chinese, Arabic, etc. Thanks
0
1
1.5k
Feb ’22
Export localizations — Workflow for multiple targets that share strings?
I am trying to localize an iOS app that also ships an App Clip. The main app and the App Clip share many (but not all) of the same localizable strings. Using Product -> Export Localizations..., I can generate a .xcloc file that contains all the localizable strings found for each of these two targets. However this results in a large number of strings being duplicated. For example, if I have a file with Text("bla bla bla") that is included in both the main app and the app clip, the string bla bla bla appears twice in the xcloc: once under MyApp and once under MyAppAppClip What is the recommend workflow when you need to localize multiple targets that share strings? Ideally I'd like to be able to send a simple set of files off to the translation and then import the results without having to manually copy arounds strings. Do I need to split all the shared code out to a shared package instead of just including shared code files in both targets?
2
0
1.8k
Jan ’22
how to retrieve a writing direction?
I'd like to be able to retrieve a writing direction from an arbitrary string... but how? I have tried getGlyphsInRange:glyphs:properties:characterIndexes:bidiLevels:    NSLayoutManager* layoutManager = [[NSLayoutManager alloc] init];   NSTextStorage* textStorage = [[NSTextStorage alloc] initWithString:@"abc"];   [textStorage addLayoutManager:layoutManager];   NSRange stringRange=NSMakeRange(0,[@"abc" length]);   NSMutableData* glyphData=[NSMutableData dataWithLength:sizeof(CGGlyph)*stringRange.length+1];   CGGlyph* glyphs=(CGGlyph*)[glyphData mutableBytes];       unsigned char *bidiLevelBuffer = calloc([@"abc" length], sizeof(unsigned char));   int glyphCount = (int)[layoutManager getGlyphsInRange:stringRange                           glyphs:glyphs properties:NULL                      characterIndexes:NULL                         bidiLevels:bidiLevelBuffer];       NSLog(@"--- %i, \"%s\"", glyphCount, bidiLevelBuffer); with the result: 2021-12-29 10:39:54.694104+0300 aTypeTrainer4Mac[61412:3479843] --- 3, "" ... any ideas?
2
0
906
Jan ’22
Wrong AppStore Region
My app is only available on UK App Store. I ran a quick dev TestFlight to determine region and it shows region as USA. Is this because the region is always USA for TestFlight? Will it work properly once I get to published App Store? i need to know so I can go to the right backend for GDPR purposes before anything happens..
1
0
705
Dec ’21
Develop spelling dictionary and grammar support in macOS for unsupported languages
I'm coming from Windows/Linux world, so don't be too harsh while answering :-) Is it possible to develop a spelling dictionary and grammar support for unsupported languages? Is there any documentation available? After some searching, I didn't find anything useful. Our wish is to develop language tools for macOS (speller, grammar, text-to-speech). What is the right procedure to start in the macOS world? Regards.
1
0
877
Nov ’21
Date Formatting 24 hour
I would like to replace my use of DateFormatter with the new date.formatted(_) API but am having some difficulty. For the context of the app in question, it is desirable to use twenty-four hour time regardless of what the user's personal settings are. I have code to do this below: let dateFormatter = DateFormatter() dateFormatter.timeZone = TimeZone.autoupdatingCurrent dateFormatter.dateStyle = .short dateFormatter.timeStyle = .none dateFormatter.dateFormat = "\(dateFormatter.dateFormat!) HH:mm:ss" return dateFormatter.string(from: date) Is there a way to do this using the new API or do I need to continue using the old way?
1
0
1.3k
Nov ’21
Can my app be found in another country(localization) with an existing name
Hi, Our situation is as follows: We have a Dutch app(Also one product page - Localization: Dutch) that can be downloaded by anyone in any country. The current app has a unique name and can be found and downloaded in every country. Now we want to change the app name but we see that the name we want to use has already been taken up by some languages/regions. What happens if people search for our new app name in a certain region/language, but the name has already been claimed in that region/country. Can our customers find our app? I am therefore curious about the behavior that arises when someone searches for our new app name that is already taken in a certain region Kind regerds,
1
0
1.1k
Nov ’21
Could it be possible that Bundle.main.preferredLocalizations returns more than one element?
According to the docs, the preferredLocalizations property of a Bundle returns: An array of NSString objects containing language IDs for localizations in the bundle. The strings are ordered according to the user's language preferences and available localizations. However, I have played around with different scenarios and setups, and I can't get the preferredLocalizations array to include more than one element. I have tried a combination of Adding multiple localizations to my app Adding multiple preferred languages to my phone (via Settings). But it always return a single-element array. This makes me ask the following questions: Is it really possible that preferredLocalizations could return more than one element? If so, can you give me a sample setup to make that happen?
0
0
693
Sep ’21
iOS Localization: What is exactly "Base" ?
Ok, so I understand the high-level reason Base Localization is used in an app, the problem it solves, and the ultimate goal it's trying to achieve. But I don't understand the real meaning of the concept of "Base". What is it exactly? I've got several questions Question 1: Is it called Base Localization? Base Internationalization? Just "Base"? Are all these synonyms? I will use the term "Base Localization" for the remainder of this question. Question 2: Yes/No Question: Is Base Localization really a localization? If the answer is YES: Question 2.1: Then why does this answer say that it's not? Is the answer right or wrong ? (That forum contains very good explanations, but I want to be strict with the meaning of "Base") Question 2.2: See the images below. Why does it get grouped with other 'real' languages (Spanish, French...)? In which country is the "Base" language spoken? (I know that's an ironical question, but it's to make my point clear). If the answer is NO: Question 2.3: If I create a new app from scratch in Xcode, why does Base get printed when I do the following? print(Bundle.main.localizations) // Base gets printed..so that implies it's a localization, just like Spanish or French Question 2.4. Basically, the opposite of question 2.2. If it's NOT a localization, then why does it get listed under the "Localization" section of the Info Tab of the project settings? Question 3: I've seen the term "Base language" used around in several docs. What's the difference between "Development Language" and "Base Language"? Are these synonyms? Could it be possible that they be different? Question 4. Is there a situation where Base localization shouldn't be used in an app? (That is, leave the option unchecked in the Info Tab of Project settings). The only situation I can think of is when you build programmatically your UI layouts. But even if you do that, there's no harm in leaving the option checked. Or is there? Question 4.1 If there isn't any harm, then why even give the option? Just set it to true always internally (and don't even expose the concept of "Base" to the end-developers). This isn't a specific question. There's no particular problem I'm trying to solve. I just want to understand what "Base" truly means and clear some fuzziness around that concept.
0
0
785
Sep ’21
Switching language sometimes makes the app freeze
I followed the advice from one of the latest WWDC videos on how to handle localization and in my app I launch Settings of my app when the user wants to change the app language (not system language). The user can then select one of the available languages that my app is localized for. The localization part works well, but sometimes it happens that when I click the < My app button in the leading, top corner or just navigate back to my app, I encounter a frozen screen and then the app just quits and restarts after 2-3 seconds. I don't need to preserve any state when the user changes the language, but I would certainly like to prevent this freeze from happening. The desired behaviour would be that the app restarts once the use changes the app language. I use SwiftUI as the UI framework. I use the following code to open the Settings of my app for the user: UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) How can I achieve that?
1
0
1.7k
Sep ’21
Limit country availability of an app by version
Hi everyone, I have seen some related questions submitted in the past regarding limiting the availability of an app's new version to a specific country alone but I could not find any clear explanation or suggestion to address this question. So, I am posting my question again here for some guidance. Scenario We have an app running globally with Version 1.0 We want to release the Version 2.0 of the same app in US for example and not in any of the countries. The other countries should still see 1.0 version of the app **Why? ** It is not user testing but a country-wise release of the app depending on the regulatory requirements. Some countries take longer to approve than others. Questions Is this possible? If yes, then how can this be done? Thanks for your guidance.
Replies
1
Boosts
0
Views
1.7k
Activity
May ’22
App use system language for location authorization dialog
On IOS there is 2 ways to select app language : settings-general -language settings - your app - language if an app require authorisation for localisation like requestWhenInUseAuthorization , the displayed text is always in the language specified by the general language setting. Setting the required string in InfoPlist.strings is not enough and there may be a problem in iOS : once can check this with the Apple official Weather App installed by default on iPhone. How to reproduce : Set your device (general-language) in English. set WeatherApp( settings-weather-language) in French. set weatherApp Location to ask next time. start weather app it will ask for permission with a message in English while all other part of app are in French. I tested with other languages and it is still the same. This may finish in Apple refuse an app in AppStore review process with that « user may expect to have authorisation dialog in the language they choose for the app», but there is nothing that can be done as even Apple Software as the same problem. Have you any workaround like preventing to change app language to something different than system language ? I have already filled a Feedback.
Replies
5
Boosts
1
Views
3.7k
Activity
May ’22
Restricting country availability for past releases
Hi, By mistake we originally released our app worldwide, and we'd like to fix this. Currently, our last two releases are restricted the way we'd like, but we'd like to restrict releases before those to be only available in the US. Is there any way to do this? We're not as worried about people who've already downloaded the app, but we'd like older releases not to be visible in the stores for most of the world. Thanks,
Replies
2
Boosts
0
Views
797
Activity
Apr ’22
Programmatic way to find the language of an application
Hello, I would like to know if there is any way to programmatically find out the current language of an application(either budle info, plist,any function from CoreFoundation, etc ). Only information I found relating to this is in CFBundleDevelopmentRegion from plist of the app but its not reliable in all cases. We are coding in C++ but we can also run Objective-C code. Thank you in advance!
Replies
9
Boosts
0
Views
3.2k
Activity
Apr ’22
DateComponentsFormatter formatted string is not working as expected
Hi! When using string method of DateComponentsFormatter, it gives sometimes an extra unit(2) in the formatted string instead of one. In the following snippet, formattedString gives 213d 1h instead of 213d. let durationShort: DateComponentsFormatter = {     let formatter = DateComponentsFormatter()     formatter.allowedUnits = [.day, .hour, .minute]     formatter.unitsStyle = .abbreviated     formatter.zeroFormattingBehavior = .dropAll     formatter.maximumUnitCount = 3     formatter.collapsesLargestUnit = false     return formatter }() let formattedString = durationShort.string(from: TimeInterval(86400 * 213)) Any idea?
Replies
7
Boosts
0
Views
2.6k
Activity
Feb ’22
Apps pane of Language & Region preferences not showing all languages
My AppleScript applet is localized for French, German, Italian and Spanish. The applet displays text in the correct language if the preferred language is changed in the "General" pane of the Language &amp; Region preferences. That is, the applet correctly works in all four languages. However, the "Apps" pane shows Spanish, German and Italian but, does not show French. For example: Why would the "Apps" pane not show all languages for which the applet is localized ? Thanks late 2015 iMac 27", macOS 12.2.1
Replies
4
Boosts
0
Views
1.7k
Activity
Feb ’22
Limit iOS app update to some countries and leave the old version for others
I have an iOS app that is available worldwide and I would like to update the current version only for some countries. If I do this, are other countries still able to download the old version?
Replies
0
Boosts
0
Views
842
Activity
Feb ’22
Custom fonts & support for many languages
My language learning app needs to support a lot of languages and text paragraphs containing 2 different languages are not uncommon. (e.g. German grammar explained in Arabic) Now, I want to integrate a custom font to make the design unique and consistent across multiple platforms (iOS, Android, Web), but there is basically no single Font that supports all languages. The question is: What is the recommended way of implementing that on the code level in SwiftUI? If I just hardcode: .font(Font.custom("myFont", size: 16)) then I guess it is not gonna work if the text contains a language not supported by my custom font. The Apple's default font seems to handle all languages perfectly, even if they are mixed together and I'd like to have something like that, but with a custom font. Specifically, I'd like to integrate FF Din font: https://www.myfonts.com/fonts/fontfont/ff-din/ with supported Languages: Western Europe, Vietnamese, Central/Eastern Europe, Baltic, Turkish, Romanian, Cyrillic, Greek So I am wondering what I would do about Chinese, Arabic, etc. Thanks
Replies
0
Boosts
1
Views
1.5k
Activity
Feb ’22
I can't update my app primary language due to app name copyrights?
I have tried several name, eg "veryLongSpecial AppName" but it is also occupied which is weird. May I know what's the steps that App store is checking? It is caused by the name in the primary language setting?
Replies
0
Boosts
0
Views
1.1k
Activity
Feb ’22
Export localizations — Workflow for multiple targets that share strings?
I am trying to localize an iOS app that also ships an App Clip. The main app and the App Clip share many (but not all) of the same localizable strings. Using Product -> Export Localizations..., I can generate a .xcloc file that contains all the localizable strings found for each of these two targets. However this results in a large number of strings being duplicated. For example, if I have a file with Text("bla bla bla") that is included in both the main app and the app clip, the string bla bla bla appears twice in the xcloc: once under MyApp and once under MyAppAppClip What is the recommend workflow when you need to localize multiple targets that share strings? Ideally I'd like to be able to send a simple set of files off to the translation and then import the results without having to manually copy arounds strings. Do I need to split all the shared code out to a shared package instead of just including shared code files in both targets?
Replies
2
Boosts
0
Views
1.8k
Activity
Jan ’22
how to retrieve a writing direction?
I'd like to be able to retrieve a writing direction from an arbitrary string... but how? I have tried getGlyphsInRange:glyphs:properties:characterIndexes:bidiLevels:    NSLayoutManager* layoutManager = [[NSLayoutManager alloc] init];   NSTextStorage* textStorage = [[NSTextStorage alloc] initWithString:@"abc"];   [textStorage addLayoutManager:layoutManager];   NSRange stringRange=NSMakeRange(0,[@"abc" length]);   NSMutableData* glyphData=[NSMutableData dataWithLength:sizeof(CGGlyph)*stringRange.length+1];   CGGlyph* glyphs=(CGGlyph*)[glyphData mutableBytes];       unsigned char *bidiLevelBuffer = calloc([@"abc" length], sizeof(unsigned char));   int glyphCount = (int)[layoutManager getGlyphsInRange:stringRange                           glyphs:glyphs properties:NULL                      characterIndexes:NULL                         bidiLevels:bidiLevelBuffer];       NSLog(@"--- %i, \"%s\"", glyphCount, bidiLevelBuffer); with the result: 2021-12-29 10:39:54.694104+0300 aTypeTrainer4Mac[61412:3479843] --- 3, "" ... any ideas?
Replies
2
Boosts
0
Views
906
Activity
Jan ’22
Wrong AppStore Region
My app is only available on UK App Store. I ran a quick dev TestFlight to determine region and it shows region as USA. Is this because the region is always USA for TestFlight? Will it work properly once I get to published App Store? i need to know so I can go to the right backend for GDPR purposes before anything happens..
Replies
1
Boosts
0
Views
705
Activity
Dec ’21
Develop spelling dictionary and grammar support in macOS for unsupported languages
I'm coming from Windows/Linux world, so don't be too harsh while answering :-) Is it possible to develop a spelling dictionary and grammar support for unsupported languages? Is there any documentation available? After some searching, I didn't find anything useful. Our wish is to develop language tools for macOS (speller, grammar, text-to-speech). What is the right procedure to start in the macOS world? Regards.
Replies
1
Boosts
0
Views
877
Activity
Nov ’21
Date Formatting 24 hour
I would like to replace my use of DateFormatter with the new date.formatted(_) API but am having some difficulty. For the context of the app in question, it is desirable to use twenty-four hour time regardless of what the user's personal settings are. I have code to do this below: let dateFormatter = DateFormatter() dateFormatter.timeZone = TimeZone.autoupdatingCurrent dateFormatter.dateStyle = .short dateFormatter.timeStyle = .none dateFormatter.dateFormat = "\(dateFormatter.dateFormat!) HH:mm:ss" return dateFormatter.string(from: date) Is there a way to do this using the new API or do I need to continue using the old way?
Replies
1
Boosts
0
Views
1.3k
Activity
Nov ’21
Can my app be found in another country(localization) with an existing name
Hi, Our situation is as follows: We have a Dutch app(Also one product page - Localization: Dutch) that can be downloaded by anyone in any country. The current app has a unique name and can be found and downloaded in every country. Now we want to change the app name but we see that the name we want to use has already been taken up by some languages/regions. What happens if people search for our new app name in a certain region/language, but the name has already been claimed in that region/country. Can our customers find our app? I am therefore curious about the behavior that arises when someone searches for our new app name that is already taken in a certain region Kind regerds,
Replies
1
Boosts
0
Views
1.1k
Activity
Nov ’21
Could it be possible that Bundle.main.preferredLocalizations returns more than one element?
According to the docs, the preferredLocalizations property of a Bundle returns: An array of NSString objects containing language IDs for localizations in the bundle. The strings are ordered according to the user's language preferences and available localizations. However, I have played around with different scenarios and setups, and I can't get the preferredLocalizations array to include more than one element. I have tried a combination of Adding multiple localizations to my app Adding multiple preferred languages to my phone (via Settings). But it always return a single-element array. This makes me ask the following questions: Is it really possible that preferredLocalizations could return more than one element? If so, can you give me a sample setup to make that happen?
Replies
0
Boosts
0
Views
693
Activity
Sep ’21
iOS Localization: What is exactly "Base" ?
Ok, so I understand the high-level reason Base Localization is used in an app, the problem it solves, and the ultimate goal it's trying to achieve. But I don't understand the real meaning of the concept of "Base". What is it exactly? I've got several questions Question 1: Is it called Base Localization? Base Internationalization? Just "Base"? Are all these synonyms? I will use the term "Base Localization" for the remainder of this question. Question 2: Yes/No Question: Is Base Localization really a localization? If the answer is YES: Question 2.1: Then why does this answer say that it's not? Is the answer right or wrong ? (That forum contains very good explanations, but I want to be strict with the meaning of "Base") Question 2.2: See the images below. Why does it get grouped with other 'real' languages (Spanish, French...)? In which country is the "Base" language spoken? (I know that's an ironical question, but it's to make my point clear). If the answer is NO: Question 2.3: If I create a new app from scratch in Xcode, why does Base get printed when I do the following? print(Bundle.main.localizations) // Base gets printed..so that implies it's a localization, just like Spanish or French Question 2.4. Basically, the opposite of question 2.2. If it's NOT a localization, then why does it get listed under the "Localization" section of the Info Tab of the project settings? Question 3: I've seen the term "Base language" used around in several docs. What's the difference between "Development Language" and "Base Language"? Are these synonyms? Could it be possible that they be different? Question 4. Is there a situation where Base localization shouldn't be used in an app? (That is, leave the option unchecked in the Info Tab of Project settings). The only situation I can think of is when you build programmatically your UI layouts. But even if you do that, there's no harm in leaving the option checked. Or is there? Question 4.1 If there isn't any harm, then why even give the option? Just set it to true always internally (and don't even expose the concept of "Base" to the end-developers). This isn't a specific question. There's no particular problem I'm trying to solve. I just want to understand what "Base" truly means and clear some fuzziness around that concept.
Replies
0
Boosts
0
Views
785
Activity
Sep ’21
App Distribution Methods
How to change app distribution methods to public not private
Replies
0
Boosts
0
Views
559
Activity
Sep ’21
Cannot search my app on AppStore
My app is published and I can search it in Pakistan on my iPhone but users from the USA are unable to search my app on AppStore. I have made my app available for all countries.
Replies
0
Boosts
0
Views
613
Activity
Sep ’21
Switching language sometimes makes the app freeze
I followed the advice from one of the latest WWDC videos on how to handle localization and in my app I launch Settings of my app when the user wants to change the app language (not system language). The user can then select one of the available languages that my app is localized for. The localization part works well, but sometimes it happens that when I click the < My app button in the leading, top corner or just navigate back to my app, I encounter a frozen screen and then the app just quits and restarts after 2-3 seconds. I don't need to preserve any state when the user changes the language, but I would certainly like to prevent this freeze from happening. The desired behaviour would be that the app restarts once the use changes the app language. I use SwiftUI as the UI framework. I use the following code to open the Settings of my app for the user: UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) How can I achieve that?
Replies
1
Boosts
0
Views
1.7k
Activity
Sep ’21