Localization

RSS for tag

Localization is the process of adapting and translating your app to multiple languages.

Posts under Localization tag

200 Posts

Post

Replies

Boosts

Views

Activity

Translation API availability on visionOS
Hi, One of the great features introduced in WWDC24 is the Translation API. But unfortunately it's currently unavailable on visionOS. My question is, does Apple have any plan to support it on visionOS as well? If so, what's the ETA for this feature? I would really like to see it on visionOS, otherwise I'll have to pay Google to use their translation API.
1
0
702
Oct ’24
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
English is missing from my languages on the App Store
I updated my app to support additional languages. However, when I checked the app in the App Store, the English language seems to have been removed. Here's the screenshot in my App Store Connect (Default English) App Store - Header (No English) App Store - Information - Languages (No English) Xcode - Project Info (Default English) Xcode - String Catalog (Default English) How can I get it back? Do I have to translate English to English in my String Catalog? or is this an error in the App Review side? I checked other apps supporting multiple languages and the still have English showing.
3
0
833
Oct ’24
Default localization fallback not used for untranslated string in catalog
For an iOS app, I'm using a String Catalog for localization. In the Localizable.xcstrings, I have all the Keys set with IDs, and default to English set, and other languages added. All of the English strings has some English text value assigned. The Key and the values are different. The Swift code only makes references to the Keys. As for the non-English languages, not all of the strings have been translated. Many of the fields are not set, i.e. it's in grey and showing the English text, and I can see the "new" tags for those untranslated strings in the String Catalog. All of that is good and expected. However, when I run the app in a non-English language, for the untranslated strings, I'm seeing the string Key instead of the English value. The screens in the app are shows Key IDs all over the place, along with some translated text, but nothing in default English. Is that how it's suppose to work? It seems like the "Default Localization (en)" should be shown. That's the whole point of having a fallback default language is it not? I understand pre-string catalogs, the fall back default is the key, but now I'd expect it to use the default language as backup since that's what's shown in the catalog.
4
1
1.3k
Sep ’24
Package.resolved discrepency
We are using a workspace file and have noticed that when we run fastlane commands that utilize xcodebuild command line arguments to run the export localization command from commandline, and it seems that it uses the xcodeproj package.resolved instead of the workspace package.resolved. This is causing issues as the xcodeproj package resolved will not update at all so is on old version of dependencies that cause xcodebuild commands to fail. Why is there multiple package.resolved files and why does the xcodeproj not stay updated with what is in the workspace resolved file? Why won't the xcodeproj resolved file update when I'm opening the xcodeproj file and selecting specific dependencies and telling it to update the package.
0
0
434
Sep ’24
JSONEncoder: How to sort keys using "localizedStandardCompare"? (just like how Xcode 16 serialize a xcstrings file)
Hello, I'd like to ask a very fundamental question about JSONEncoder: how to sort keys in a specific order when encoding a dictionary to JSON text? I know there is an option called JSONEncoder.OutputFormatting.sortedKeys, but it sorts the keys only in lexicographic order. I want to sort the keys using a different comparator, such as String.localizedStandardCompare(_:), which achieves the "Finder-like" order. The reason why I ask this question is because I have a localization tool that works with String Catalog (xcstrings file, which is a JSON), but every time my tool serializes an xcstrings file, it always messes up the keys in lexicographic order (I used JSONEncoder + .sortedKeys). Meanwhile, Xcode 16 always serializes the string keys into the "Finder-like" order. As a result, my tool always generates a huge diff when manipulating the xcstrings even when making only a small modification to it. So I am wondering how Xcode 16 implements the String Catalog tool to serialize the JSON in "Finder-like" order. It would be great if JSONEncoder could do that too. Or, maybe I can use another serialization method to implement this behavior?
4
0
1.2k
Sep ’24
String catalog and local package
Hello Apple community ! I'm facing an issue regarding xcstrings in a local package in my project. It's an iOS application with a local package containing multiple targets. The Localizable.xcstrings is located in the app target and contains keys for the app and targets of the local package (Views in the targets look for keys in the main bundle) My issue is that auto detection/extraction seems to work only for keys used inside the app bundle. It doesn't look in the package. However, if I add a Localizable.xcstrings inside a package target, it gets populated. Is this normal behaviour & is there any way to make extraction put the keys in the main bundle xcstrings instead ? I feel like it should be normal behaviour if no xcstrings is found in the package My fallback would be to set all keys in manual extraction state but it's not ideal ;) Thanks in advance for the great work Eric
1
0
952
Sep ’24
Extensions and Widget localizations
Hi community: I'm experiencing an issue in iOS 17 where the Widgets and Extensions use the local device language instead of the app language (preferred languages displayed on the app settings). This issue was reproducible in iOS 16.1, but then was solved. Now it is back on iOS 17 and iOS 17.1 In terms of code, Locale.current in the app returns the language preference selection, even you can use bundle.main.preferredlanguages and get the first one (because there's a repetition from 2 to 3 times the same value) But in whatever extension, the app's preferred language cannot be got, it always returns the system's preferred language. @eskimo, Is it a known issue? Also, Xcode 15.3 shows 0 files localized when you use the strings catalog. I appreciate any help you can provide.
3
0
1.4k
Sep ’24
Predicitive Text is presenting suggestions in incorrect language when 3rd party keyboard is installed
I'm the developer of a third-party keyboard app, Snippety - Snippets Manager, which is designed for using snippets rather than regular typing. One of my users has encountered a strange issue: after installing my keyboard (even when it is not actively in use), the predictive text bar starts showing suggestions in Polish. This happens despite the Polish language not being installed on the device. The issue resolves as soon as my keyboard is uninstalled from the system settings. Interestingly, my application (including the keyboard) does not support the Polish language, nor is Polish specified anywhere in the app. The app was developed and published from macOS in English. This seems to be an iOS bug. The only language-related configuration in my keyboard is the PrimaryLanguage key in the Info.plist file, which I set to "mul" because the keyboard is not intended for typing. I also tried setting it to "mis", but the issue persists. The video presenting this issue on an iPhone 15 simulator running iOS 17.5: https://www.dropbox.com/scl/fi/xjdyucxpmv1cv0mnmwzvd/prdictive-text-issue.mp4?rlkey=aphznpdti08pz8xl84ojbyxz3&dl=0 Info.plist for my keyboard: My project settings: Steps to reproduce: Configure iOS to use English language only, with English keyboard Enable predictive text feature in the system Install Snippety keyboard Use the regular keyboard & start typing "dzie" Actual result: Polish predictions appear even though the Polish language is not installed or declared by the keyboard. Expected result: The predictive text should present predictions based on system settings. What is even more weird, I discovered that when I add the keyboard in system settings, it automatically installs Polish language in the system settings. I even changed PrimaryLanguage to "de" (German) in Info.plist but it still installs Polish. See: https://www.dropbox.com/scl/fi/aiv5g4z331zwy827zj47v/incorrect-language-installed.mp4?rlkey=16v5gqmb6mj8yuyyd7jwmjnsw&dl=0 Any ideas what could be wrong? I also created a ticket: #FB13949087 I also found a similar issue from 2018 (O_O) reported here: https://stackoverflow.com/questions/53069262/ios-adds-new-preferred-language-when-installing-my-3rd-party-keyboard
3
1
1.2k
Aug ’24
"Add to Apple Wallet" (PKAddPassButton) title localization to device language
Hi there! My app supports one language by default Ukrainian (uk) and does not support multiple languages. In Xcode settings "Development Language" is set to Ukrainian by default also. I have a PKAddPassButton on a ViewController and "Add to Apple Wallet" always appears in Ukrainian (Tested on real device iOS 15/16/17). Apple's "Getting Started with Apple Pay: In-App Provisioning, Verification, Security, and Wallet Extensions” document states that "The Add to Apple Wallet button adapts to the device language and the light and dark appearances, but the issuer app needs to adapt the language of the row selector text." When I change device language to French the “Add to Apple Wallet” button does not change to French. I created a fresh swift app, added PKAddPassButton the "Add to Apple Wallet" button, General -> Language & Region changed the device language to French, etc, but the "Add to Apple Wallet" button is always in English. Has anyone run into the same issue? How to adapt the "Add to Apple Wallet" button to the device system language?
3
0
1.6k
Aug ’24
QLPreviewController's PencilKit sub component doesn't get mirrored on RTL Languages in iOS18b3
QLPreviewController's PencilKit doesn't get mirrored when used with a RTL language in iOS18b3. Moreover, the sub-menu of the actions is not translated and is shown in English. Steps to reproduce: Set an app with QLPreviewController and set its app language to Hebrew (or any other RTL language) Run the app Tap the Markup button on bottom-left side. Look on the PencilKit element. Tap the + button to show the annotation actions. Look on the annotation actions menu. Current: The Pencil Kit element is not mirrored when app language is RTL Language and the sub-menu actions are shown in English. Expected: The Pencil Kit element is mirrored when app language is RTL Language and the sub-menu actions are shown in the RTL Language. Submitted Feedback: FB14452847 Notes: This wasn't reproducible in iOS 17.5.1 The top bar buttons are mirrored as expected with a RTL language.
5
0
1.6k
Aug ’24
String Catalog on separate Package
I'm creating a new app, following String catalogs,  But, after start creating separate packages per feature, I found that I have to start typing String(localized: "Test", bundle: .module) To not loose the functionality of auto sync with the catalog, and work with the module. Would be really great if as it is on a separated module, work automatically within the file in the module. Do someone knows if I'm missing something ? Thanks
1
0
541
Aug ’24
Incorrect `NSLocationWhenInUseUsageDescription` is displayed from InfoPlist.xcstrings when default localization key/value has a `state` of `new`
en.lproj/InfoPlist.strings ja.lproj/InfoPlist.strings (I resolved this issue but I still consider it a bug in Xcode. Hopefully any other poor soul that encounters it will find this post.) Summary When App default localization is e.g. Japanese Secondary localization is e.g. English InfoPlist.xcstrings is added to the target NSLocationWhenInUseUsageDescription is added in Japanese to Info.plist (within target build settings). NSLocationWhenInUseUsageDescription is localized to English CLLocationManager().requestWhenInUseAuthorization() is called Then If device language is English: NSLocationWhenInUseUsageDescription is displayed in English on the location permission system dialog (correct behavior). If device language is Japanese: NSLocationWhenInUseUsageDescription is displayed in English on the location permission system dialog (incorrect behavior). Expected behavior If device language is Japanese: NSLocationWhenInUseUsageDescription should be displayed in Japanese on the location permission system dialog. Root cause The json representation of InfoPlist.xcstrings is the following after following the above procedure: { "sourceLanguage" : "ja", "strings" : { "NSLocationWhenInUseUsageDescription" : { "comment" : "Privacy - Location When In Use Usage Description", "extractionState" : "extracted_with_value", "localizations" : { "en" : { "stringUnit" : { "state" : "translated", "value" : "test" } }, "ja" : { "stringUnit" : { "state" : "new", "value" : "テスト" } } } } }, "version" : "1.0" } After building, Xcode creates the key NSLocationWhenInUseUsageDescription.ja.stringUnit.state with the value new, and the value as テスト (the automatically extracted value from Info.plist). At runtime, iOS ignores ja.stringUnit.value and falls back to en.stringUnit.value when: NSLocationWhenInUseUsageDescription.localizations.ja.stringUnit.state == "new" NSLocationWhenInUseUsageDescription.extractionState == "extracted_with_value" Additionally, Xcode's "String Catalog" interface for xcstrings files does not show the new state value in the interface and does not allow ja.stringUnit.value to be modified. Fixes/Workarounds Option 1 Open InfoPlist.xcstrings in string catalog mode. Right click the entry in the source language. Click "Mark as Reviewed". Option 2 Open InfoPlist.xcstrings in source mode. Change all {sourceLanguage}.stringUnit.state values from new to translated. Option 3 Remove NSLocationWhenInUseUsageDescription key from Info.plist or build settings. Add NSLocationWhenInUseUsageDescription key manually to InfoPlist.xcstrings. Fill in values for source language and other languages. Note: {key}.extractionState for this case will be manual instead of extracted_with_value. Option 4 Use older/deprecated InfoPlist.strings files instead of .xcstrings. InfoPlist.xcstrings after fix { "sourceLanguage" : "ja", "strings" : { "NSLocationWhenInUseUsageDescription" : { "comment" : "Privacy - Location When In Use Usage Description", "extractionState" : "extracted_with_value", "localizations" : { "en" : { "stringUnit" : { "state" : "translated", "value" : "test" } }, "ja" : { "stringUnit" : { "state" : "translated", "value" : "テスト" } } } } }, "version" : "1.0" } Reproduceable Environment Xcode 15.4 / iOS 17.5 Xcode 16 beta 5 / iOS 18 Simulator Device Screenshot of bug "test" should be "テスト".
1
0
1.1k
Aug ’24
Localise - Seperate screenshot for my primary location?
Hi Guys, I want to localise my app store product page. I want to have a default set of images for all product pages and for my primary location (Australia), I want my primary image to be different. I want to show that it is Australian-made. by default your primary location becomes your default for all other images and I don't want the same screenshot in all other stores (US, UK,JPN etc) Any ideas?
0
0
482
Aug ’24
Localization of App Using String Catalogs - Storyboard
Hi everyone! I want to localize my swift application, which uses Storyboard, using String Catalogs. I have watched several tutorial videos about localization, however, it uses SwiftUI. I have tried localizing my storyboard through .string and migrating it to String Catalogs and it worked. (Example codes are attached below) But in the tutorials, String Catalogs extraction works when you build the project. But if you are using storyboard, I think it is not possible? or are there any other ways to extract the strings from storyboard using string catalogs directly and not using .strings and migration? This also makes me wonder if the Vary by Plural will work with the method that I did. Thank you so much in advance! Have a nice day ahead! Sample Codes from .strings (storyboard): /* Class = "UITextField"; placeholder = "Enter Password"; ObjectID = "08D-xr-4ke"; */ "08D-xr-4ke.placeholder" = "Enter Password"; /* Class = "UIButton"; configuration.title = "Login"; ObjectID = "2gQ-cX-5nH"; */ "2gQ-cX-5nH.configuration.title" = "Login"; Migrating it to String Catalogs: key : 08D-xr-4ke.placeholder English(en): Enter Password comment: /* Class = "UIButton"; configuration.title = "Login"; ObjectID = "2gQ-cX-5nH"; */
1
1
1.2k
Aug ’24
How to fix languages in App Store
I just put my app on the store for pre-order. I wanted to localize it to Spanish (don't ask me why 😅), so it should be supporting English (primary language) and Spanish. However, on the App Store, it thinks that my app only supports Spanish. How do I fix this in App Store Connect (or wherever it should be fixed)? Thank you so much for the help!
5
0
1.4k
Aug ’24
AppIntent Title Localization
Does anyone know how to localize the title of the shortcut? I tried to create a localizable file and then do a french translation. However, when I reference it as my shortcut title and change my simulator's language to the translated language (in this case french) it still displays the title in the english translation. for example: my Localizable.strings file says in english: "shortcutTitle" = "Hello!"; in french: "shortcutTitle" = "Bonjour!"; and then my AppIntent says: static var title: LocalizedStringResource{return LocalizedStringResource("shortcutTitle")}
1
0
1k
Jul ’24
Translation API availability on visionOS
Hi, One of the great features introduced in WWDC24 is the Translation API. But unfortunately it's currently unavailable on visionOS. My question is, does Apple have any plan to support it on visionOS as well? If so, what's the ETA for this feature? I would really like to see it on visionOS, otherwise I'll have to pay Google to use their translation API.
Replies
1
Boosts
0
Views
702
Activity
Oct ’24
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
English is missing from my languages on the App Store
I updated my app to support additional languages. However, when I checked the app in the App Store, the English language seems to have been removed. Here's the screenshot in my App Store Connect (Default English) App Store - Header (No English) App Store - Information - Languages (No English) Xcode - Project Info (Default English) Xcode - String Catalog (Default English) How can I get it back? Do I have to translate English to English in my String Catalog? or is this an error in the App Review side? I checked other apps supporting multiple languages and the still have English showing.
Replies
3
Boosts
0
Views
833
Activity
Oct ’24
Default localization fallback not used for untranslated string in catalog
For an iOS app, I'm using a String Catalog for localization. In the Localizable.xcstrings, I have all the Keys set with IDs, and default to English set, and other languages added. All of the English strings has some English text value assigned. The Key and the values are different. The Swift code only makes references to the Keys. As for the non-English languages, not all of the strings have been translated. Many of the fields are not set, i.e. it's in grey and showing the English text, and I can see the "new" tags for those untranslated strings in the String Catalog. All of that is good and expected. However, when I run the app in a non-English language, for the untranslated strings, I'm seeing the string Key instead of the English value. The screens in the app are shows Key IDs all over the place, along with some translated text, but nothing in default English. Is that how it's suppose to work? It seems like the "Default Localization (en)" should be shown. That's the whole point of having a fallback default language is it not? I understand pre-string catalogs, the fall back default is the key, but now I'd expect it to use the default language as backup since that's what's shown in the catalog.
Replies
4
Boosts
1
Views
1.3k
Activity
Sep ’24
Package.resolved discrepency
We are using a workspace file and have noticed that when we run fastlane commands that utilize xcodebuild command line arguments to run the export localization command from commandline, and it seems that it uses the xcodeproj package.resolved instead of the workspace package.resolved. This is causing issues as the xcodeproj package resolved will not update at all so is on old version of dependencies that cause xcodebuild commands to fail. Why is there multiple package.resolved files and why does the xcodeproj not stay updated with what is in the workspace resolved file? Why won't the xcodeproj resolved file update when I'm opening the xcodeproj file and selecting specific dependencies and telling it to update the package.
Replies
0
Boosts
0
Views
434
Activity
Sep ’24
JSONEncoder: How to sort keys using "localizedStandardCompare"? (just like how Xcode 16 serialize a xcstrings file)
Hello, I'd like to ask a very fundamental question about JSONEncoder: how to sort keys in a specific order when encoding a dictionary to JSON text? I know there is an option called JSONEncoder.OutputFormatting.sortedKeys, but it sorts the keys only in lexicographic order. I want to sort the keys using a different comparator, such as String.localizedStandardCompare(_:), which achieves the "Finder-like" order. The reason why I ask this question is because I have a localization tool that works with String Catalog (xcstrings file, which is a JSON), but every time my tool serializes an xcstrings file, it always messes up the keys in lexicographic order (I used JSONEncoder + .sortedKeys). Meanwhile, Xcode 16 always serializes the string keys into the "Finder-like" order. As a result, my tool always generates a huge diff when manipulating the xcstrings even when making only a small modification to it. So I am wondering how Xcode 16 implements the String Catalog tool to serialize the JSON in "Finder-like" order. It would be great if JSONEncoder could do that too. Or, maybe I can use another serialization method to implement this behavior?
Replies
4
Boosts
0
Views
1.2k
Activity
Sep ’24
String catalog and local package
Hello Apple community ! I'm facing an issue regarding xcstrings in a local package in my project. It's an iOS application with a local package containing multiple targets. The Localizable.xcstrings is located in the app target and contains keys for the app and targets of the local package (Views in the targets look for keys in the main bundle) My issue is that auto detection/extraction seems to work only for keys used inside the app bundle. It doesn't look in the package. However, if I add a Localizable.xcstrings inside a package target, it gets populated. Is this normal behaviour & is there any way to make extraction put the keys in the main bundle xcstrings instead ? I feel like it should be normal behaviour if no xcstrings is found in the package My fallback would be to set all keys in manual extraction state but it's not ideal ;) Thanks in advance for the great work Eric
Replies
1
Boosts
0
Views
952
Activity
Sep ’24
Extensions and Widget localizations
Hi community: I'm experiencing an issue in iOS 17 where the Widgets and Extensions use the local device language instead of the app language (preferred languages displayed on the app settings). This issue was reproducible in iOS 16.1, but then was solved. Now it is back on iOS 17 and iOS 17.1 In terms of code, Locale.current in the app returns the language preference selection, even you can use bundle.main.preferredlanguages and get the first one (because there's a repetition from 2 to 3 times the same value) But in whatever extension, the app's preferred language cannot be got, it always returns the system's preferred language. @eskimo, Is it a known issue? Also, Xcode 15.3 shows 0 files localized when you use the strings catalog. I appreciate any help you can provide.
Replies
3
Boosts
0
Views
1.4k
Activity
Sep ’24
iOS per app language settings shows more languages than selected in Xcode
Hi, My iOS app shows more language with region codes than what I've selected in Xcode: This is what I see in the language selection (simulator and device): How can I remove all the language with region codes? I want to remove: English (US) Suomi (Suomi) Deutsch (Deutschland) Kalaallisut (Kalaallit Nunaat) Norsk bokmål (Norge) Thank you!
Replies
1
Boosts
0
Views
622
Activity
Aug ’24
Predicitive Text is presenting suggestions in incorrect language when 3rd party keyboard is installed
I'm the developer of a third-party keyboard app, Snippety - Snippets Manager, which is designed for using snippets rather than regular typing. One of my users has encountered a strange issue: after installing my keyboard (even when it is not actively in use), the predictive text bar starts showing suggestions in Polish. This happens despite the Polish language not being installed on the device. The issue resolves as soon as my keyboard is uninstalled from the system settings. Interestingly, my application (including the keyboard) does not support the Polish language, nor is Polish specified anywhere in the app. The app was developed and published from macOS in English. This seems to be an iOS bug. The only language-related configuration in my keyboard is the PrimaryLanguage key in the Info.plist file, which I set to "mul" because the keyboard is not intended for typing. I also tried setting it to "mis", but the issue persists. The video presenting this issue on an iPhone 15 simulator running iOS 17.5: https://www.dropbox.com/scl/fi/xjdyucxpmv1cv0mnmwzvd/prdictive-text-issue.mp4?rlkey=aphznpdti08pz8xl84ojbyxz3&dl=0 Info.plist for my keyboard: My project settings: Steps to reproduce: Configure iOS to use English language only, with English keyboard Enable predictive text feature in the system Install Snippety keyboard Use the regular keyboard & start typing "dzie" Actual result: Polish predictions appear even though the Polish language is not installed or declared by the keyboard. Expected result: The predictive text should present predictions based on system settings. What is even more weird, I discovered that when I add the keyboard in system settings, it automatically installs Polish language in the system settings. I even changed PrimaryLanguage to "de" (German) in Info.plist but it still installs Polish. See: https://www.dropbox.com/scl/fi/aiv5g4z331zwy827zj47v/incorrect-language-installed.mp4?rlkey=16v5gqmb6mj8yuyyd7jwmjnsw&dl=0 Any ideas what could be wrong? I also created a ticket: #FB13949087 I also found a similar issue from 2018 (O_O) reported here: https://stackoverflow.com/questions/53069262/ios-adds-new-preferred-language-when-installing-my-3rd-party-keyboard
Replies
3
Boosts
1
Views
1.2k
Activity
Aug ’24
"Add to Apple Wallet" (PKAddPassButton) title localization to device language
Hi there! My app supports one language by default Ukrainian (uk) and does not support multiple languages. In Xcode settings "Development Language" is set to Ukrainian by default also. I have a PKAddPassButton on a ViewController and "Add to Apple Wallet" always appears in Ukrainian (Tested on real device iOS 15/16/17). Apple's "Getting Started with Apple Pay: In-App Provisioning, Verification, Security, and Wallet Extensions” document states that "The Add to Apple Wallet button adapts to the device language and the light and dark appearances, but the issuer app needs to adapt the language of the row selector text." When I change device language to French the “Add to Apple Wallet” button does not change to French. I created a fresh swift app, added PKAddPassButton the "Add to Apple Wallet" button, General -> Language & Region changed the device language to French, etc, but the "Add to Apple Wallet" button is always in English. Has anyone run into the same issue? How to adapt the "Add to Apple Wallet" button to the device system language?
Replies
3
Boosts
0
Views
1.6k
Activity
Aug ’24
QLPreviewController's PencilKit sub component doesn't get mirrored on RTL Languages in iOS18b3
QLPreviewController's PencilKit doesn't get mirrored when used with a RTL language in iOS18b3. Moreover, the sub-menu of the actions is not translated and is shown in English. Steps to reproduce: Set an app with QLPreviewController and set its app language to Hebrew (or any other RTL language) Run the app Tap the Markup button on bottom-left side. Look on the PencilKit element. Tap the + button to show the annotation actions. Look on the annotation actions menu. Current: The Pencil Kit element is not mirrored when app language is RTL Language and the sub-menu actions are shown in English. Expected: The Pencil Kit element is mirrored when app language is RTL Language and the sub-menu actions are shown in the RTL Language. Submitted Feedback: FB14452847 Notes: This wasn't reproducible in iOS 17.5.1 The top bar buttons are mirrored as expected with a RTL language.
Replies
5
Boosts
0
Views
1.6k
Activity
Aug ’24
String Catalog on separate Package
I'm creating a new app, following String catalogs,  But, after start creating separate packages per feature, I found that I have to start typing String(localized: "Test", bundle: .module) To not loose the functionality of auto sync with the catalog, and work with the module. Would be really great if as it is on a separated module, work automatically within the file in the module. Do someone knows if I'm missing something ? Thanks
Replies
1
Boosts
0
Views
541
Activity
Aug ’24
Incorrect `NSLocationWhenInUseUsageDescription` is displayed from InfoPlist.xcstrings when default localization key/value has a `state` of `new`
en.lproj/InfoPlist.strings ja.lproj/InfoPlist.strings (I resolved this issue but I still consider it a bug in Xcode. Hopefully any other poor soul that encounters it will find this post.) Summary When App default localization is e.g. Japanese Secondary localization is e.g. English InfoPlist.xcstrings is added to the target NSLocationWhenInUseUsageDescription is added in Japanese to Info.plist (within target build settings). NSLocationWhenInUseUsageDescription is localized to English CLLocationManager().requestWhenInUseAuthorization() is called Then If device language is English: NSLocationWhenInUseUsageDescription is displayed in English on the location permission system dialog (correct behavior). If device language is Japanese: NSLocationWhenInUseUsageDescription is displayed in English on the location permission system dialog (incorrect behavior). Expected behavior If device language is Japanese: NSLocationWhenInUseUsageDescription should be displayed in Japanese on the location permission system dialog. Root cause The json representation of InfoPlist.xcstrings is the following after following the above procedure: { "sourceLanguage" : "ja", "strings" : { "NSLocationWhenInUseUsageDescription" : { "comment" : "Privacy - Location When In Use Usage Description", "extractionState" : "extracted_with_value", "localizations" : { "en" : { "stringUnit" : { "state" : "translated", "value" : "test" } }, "ja" : { "stringUnit" : { "state" : "new", "value" : "テスト" } } } } }, "version" : "1.0" } After building, Xcode creates the key NSLocationWhenInUseUsageDescription.ja.stringUnit.state with the value new, and the value as テスト (the automatically extracted value from Info.plist). At runtime, iOS ignores ja.stringUnit.value and falls back to en.stringUnit.value when: NSLocationWhenInUseUsageDescription.localizations.ja.stringUnit.state == "new" NSLocationWhenInUseUsageDescription.extractionState == "extracted_with_value" Additionally, Xcode's "String Catalog" interface for xcstrings files does not show the new state value in the interface and does not allow ja.stringUnit.value to be modified. Fixes/Workarounds Option 1 Open InfoPlist.xcstrings in string catalog mode. Right click the entry in the source language. Click "Mark as Reviewed". Option 2 Open InfoPlist.xcstrings in source mode. Change all {sourceLanguage}.stringUnit.state values from new to translated. Option 3 Remove NSLocationWhenInUseUsageDescription key from Info.plist or build settings. Add NSLocationWhenInUseUsageDescription key manually to InfoPlist.xcstrings. Fill in values for source language and other languages. Note: {key}.extractionState for this case will be manual instead of extracted_with_value. Option 4 Use older/deprecated InfoPlist.strings files instead of .xcstrings. InfoPlist.xcstrings after fix { "sourceLanguage" : "ja", "strings" : { "NSLocationWhenInUseUsageDescription" : { "comment" : "Privacy - Location When In Use Usage Description", "extractionState" : "extracted_with_value", "localizations" : { "en" : { "stringUnit" : { "state" : "translated", "value" : "test" } }, "ja" : { "stringUnit" : { "state" : "translated", "value" : "テスト" } } } } }, "version" : "1.0" } Reproduceable Environment Xcode 15.4 / iOS 17.5 Xcode 16 beta 5 / iOS 18 Simulator Device Screenshot of bug "test" should be "テスト".
Replies
1
Boosts
0
Views
1.1k
Activity
Aug ’24
Localise - Seperate screenshot for my primary location?
Hi Guys, I want to localise my app store product page. I want to have a default set of images for all product pages and for my primary location (Australia), I want my primary image to be different. I want to show that it is Australian-made. by default your primary location becomes your default for all other images and I don't want the same screenshot in all other stores (US, UK,JPN etc) Any ideas?
Replies
0
Boosts
0
Views
482
Activity
Aug ’24
Localization of App Using String Catalogs - Storyboard
Hi everyone! I want to localize my swift application, which uses Storyboard, using String Catalogs. I have watched several tutorial videos about localization, however, it uses SwiftUI. I have tried localizing my storyboard through .string and migrating it to String Catalogs and it worked. (Example codes are attached below) But in the tutorials, String Catalogs extraction works when you build the project. But if you are using storyboard, I think it is not possible? or are there any other ways to extract the strings from storyboard using string catalogs directly and not using .strings and migration? This also makes me wonder if the Vary by Plural will work with the method that I did. Thank you so much in advance! Have a nice day ahead! Sample Codes from .strings (storyboard): /* Class = "UITextField"; placeholder = "Enter Password"; ObjectID = "08D-xr-4ke"; */ "08D-xr-4ke.placeholder" = "Enter Password"; /* Class = "UIButton"; configuration.title = "Login"; ObjectID = "2gQ-cX-5nH"; */ "2gQ-cX-5nH.configuration.title" = "Login"; Migrating it to String Catalogs: key : 08D-xr-4ke.placeholder English(en): Enter Password comment: /* Class = "UIButton"; configuration.title = "Login"; ObjectID = "2gQ-cX-5nH"; */
Replies
1
Boosts
1
Views
1.2k
Activity
Aug ’24
How to fix languages in App Store
I just put my app on the store for pre-order. I wanted to localize it to Spanish (don't ask me why 😅), so it should be supporting English (primary language) and Spanish. However, on the App Store, it thinks that my app only supports Spanish. How do I fix this in App Store Connect (or wherever it should be fixed)? Thank you so much for the help!
Replies
5
Boosts
0
Views
1.4k
Activity
Aug ’24
Improvements to the functionality of the Mail application
In my opinion, the mail app needs a built-in translator. Very often, letters arrive in different languages ​​and you have to take a screenshot and translate it in a third-party app.
Replies
0
Boosts
0
Views
532
Activity
Aug ’24
AppIntent Title Localization
Does anyone know how to localize the title of the shortcut? I tried to create a localizable file and then do a french translation. However, when I reference it as my shortcut title and change my simulator's language to the translated language (in this case french) it still displays the title in the english translation. for example: my Localizable.strings file says in english: "shortcutTitle" = "Hello!"; in french: "shortcutTitle" = "Bonjour!"; and then my AppIntent says: static var title: LocalizedStringResource{return LocalizedStringResource("shortcutTitle")}
Replies
1
Boosts
0
Views
1k
Activity
Jul ’24
Mark localized strings untranslatable
String catalog is a great new feature to organize strings in one place. What would you recommend how to handle extracted Strings which need not be translated in different languages
Replies
7
Boosts
0
Views
4.9k
Activity
Jul ’24