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

What populates the App Store "Languages" list — CFBundleLocalizations or .lproj folders?
I have a Capacitor (web-based) iOS app. All UI strings are localized in the JavaScript layer at runtime, so the app bundle has no per-language storyboard or .strings resources. I want the App Store product page's "Languages" section to list every language we support (en, de, es, fr, it, pt-BR, tr) — right now it only shows English. In our last release I added a CFBundleLocalizations array to Info.plist with all 7 codes. That build is live, but the product page still shows only "English." My questions: Does the App Store "Languages" list derive from CFBundleLocalizations, from the actual .lproj folders compiled into the binary, or both? If .lproj folders are required, is adding empty/stub .lproj folders (registered in the project's knownRegions) enough, or do they need real localized content? After a build with the correct setup goes live, how long until the list refreshes? Thanks — I want to confirm the correct approach before shipping the next build.
1
0
329
Jul ’26
AppIntents and String catalog: how can we support both singular and plural forms for TypeDisplayRepresentation (used by DeleteIntent in the Shortcuts app for example)
Hello, I’m implementing the AppIntents framework in my app. I want to translate the TypeDisplayRepresentation that is used in the Shortcuts app UI like in a DeleteIntent (see my feedback about this: FB23451186 for more context). In the “Accelerating app interactions with App Intents” sample code we can see that this is done using a .stringsdict file, as follows for the “Trail” key (singular and plural): <key>Trail</key> <dict> <key>NSStringLocalizedFormatKey</key> <string>%#@VARIABLE@</string> <key>VARIABLE</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>one</key> <string>Trail</string> <key>other</key> <string>Trails</string> </dict> </dict> I want to use a String catalog instead of a .stringsdict file because all my strings are in a String catalog. I tried to migrate the AppIntents.stringsdict file manually but it failed with an error: “An error occurred when migrating AppIntentsSampleApp/Resources/AppIntents.stringsdict: This stringsdict cannot be migrated: Missing required key 'NSStringFormatValueTypeKey' inside 'Trail' -> 'VARIABLE’” So I manually added a NSStringFormatValueTypeKey like this in the .stringsdict file: <key>Trail</key> <dict> <key>NSStringLocalizedFormatKey</key> <string>%#@VARIABLE@</string> <key>VARIABLE</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>NSStringFormatValueTypeKey</key> <string>lld</string> <key>one</key> <string>Trail</string> <key>other</key> <string>Trails</string> </dict> </dict> And then I’ve been able to migrate the .stringsdict file into a String catalog. The string catalog looks like this after migration: "Trail" : { "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { "state" : "translated", "value" : "%#@VARIABLE@" }, "substitutions" : { "VARIABLE" : { "formatSpecifier" : "lld", "variations" : { "plural" : { "one" : { "stringUnit" : { "state" : "translated", "value" : "Trail (Catalog)" } }, "other" : { "stringUnit" : { "state" : "translated", "value" : "Trails (Catalog)" } } } } } } } } This works, which is nice. But I tried to reproduce the same result by having a %#@VARIABLE@ in my LocalizedStringResource defaultValue like this: TypeDisplayRepresentation( name: LocalizedStringResource( "Flower", defaultValue: "%#@VARIABLE@", table: "AppIntents" ), numericFormat: LocalizedStringResource( "\(placeholder: .int) flower", table: "AppIntents" ) ) But the String catalog doesn’t support that apparently, I can’t get a “substitution” object in my catalog, so I have to manually do it using the source code which is not ideal and painful. Is there a way to support this kind of substitution with no actual plural token in the string as we can see for the %#@VARIABLE@ for Trail? Thank you, Regards, Axel
1
0
647
Jun ’26
I designed my app in 5 languages in please help!
Hey everyone I’m new here. I designed my app in 5 languages and I updated each one description, promotional, what’s new etc one by one step by step then submitted a new build but my app still says English under languages. I did everything by the book. If anyone has any advice or can check the Apple Store Chinese, Spanis, Japanese, Portuguese country app stores and look for my app golden edge ai and atleast confirm it’s showing up in those locales I would be eternally grateful! 🙏 🙏 https://apps.apple.com/us/app/golden-edge-gold-ai/id6774464201
4
0
696
Jun ’26
Google Search is indexing my App Store link in Chinese instead of my Primary Language or English
Hi everyone, I recently launched my app, when searching for the app on Google, the official App Store link that appears in the search results is from the Chinese App Store. My app's primary language is correctly configured in App Store Connect, and I would naturally expect the search result to display in that primary language, or at least default to English. Has anyone else experienced this issue where Google indexes the wrong regional App Store page (e.g., pulling a Chinese localization instead of the global or primary one)? Is there a specific setting or metadata in App Store Connect I need to double-check to force the correct locale, or is this purely a Google crawling anomaly that usually resolves itself over time? Thanks in advance for any insights!
2
0
740
Jun ’26
Autocorrection and predictive text support for additional Cyrillic languages
Hello Apple Keyboard / Internationalization team, I would like to ask about autocorrection and predictive text support for additional Cyrillic-based languages, especially Kazakh, Kyrgyz, Chuvash, and Ingush. These languages use Cyrillic scripts with their own letters, spelling rules, and word-frequency patterns. When users type in these languages, Russian-based autocorrection or missing language-specific correction can produce incorrect suggestions or replacements. My questions are: Are there plans to expand autocorrection and predictive text support for more Cyrillic-based languages? Is there a recommended way for developers or language communities to provide dictionaries, word-frequency lists, corpora, or other linguistic data to help improve autocorrection? Should this type of request be submitted through Feedback Assistant, Developer Forums, or another Apple channel? I have corpus-based frequency data and language resources for multiple Cyrillic-based languages and would be happy to share them if useful. Thank you. Ali Kuzhuget
1
0
1.7k
Jun ’26
Cyrillic keyboard long-press support for additional languages
Hello Apple Keyboard / Internationalization team, In the current beta, I noticed new keyboard support for Tuvan and Sakha. Thank you — this is very important for Cyrillic-based languages and their communities. I also noticed improvements to the Russian keyboard long-press options, but some Cyrillic letters used by other languages still seem to be missing. For example, Ossetian uses Ӕ ӕ, and this character does not appear as a long-press option. My questions are: Are there plans to expand the Russian keyboard long-press mappings to cover more Cyrillic-based languages? Is there a recommended way for language communities or developers to provide corpus/frequency data and character mappings to help improve keyboard support? Should this type of request be submitted through Feedback Assistant, Developer Forums, or another channel? I have corpus-based frequency data and long-press mapping data for many Cyrillic-based languages and would be happy to share it if useful. Thank you. Ali Kuzhuget
1
0
2k
Jun ’26
Is there a way to force a fallback language?
My app is written with Spanish declared as the original, base language. I have localized to 5 other languages. English, German, Italian, French, and Portuguese. If I have someone who's phone is set to an unsupported language, like Polish, and they don't have one of my supported languages in their list of "Preferred Languages" (Settings -> General -> Language and Region), then the app defaults to Spanish. Is it possible to force my app to default to English instead, without changing the original, base language declaration of the app? It appears that making that change is pretty difficult, according to documentation.
2
0
1.6k
Jun ’26
Localising UISegmentedControl (storyboard based)
In this iOS app, with UIKit in Swift, I create a UISegmentedControl in stroryboard. I define the text for each segmentTitles in IB ,and need to localise. I have tried in the main.xxx files "id.segmentTitles" = ["a", "b", "c", "d", "e"]; to no avail. I understand this is a very very old issue that UISegmentedControl are not localized from stroryboard: https://stackoverflow.com/questions/12884751/uisegmentedcontrol-and-localization I tried to use a similar approach as for UITextView (which are not either localized) helpTextView.text = NSLocalizedString("id.text", tableName: "Main", comment: "helpTextView") But cannot make it. I found a work around, by localising in code: let seg0 = NSLocalizedString("a", comment: "Segment") segmentedControl.setTitle(seg0, forSegmentAt: 0) However, I get error messages in log unless I clear the segment titles in IB: ERROR: id.segmentTitles[0] not found in table Main of bundle CFBundle 0x600003b101c0 Is there a solution to this ?
4
0
710
Jun ’26
AttributedString Localization does not seem to work
I have this code struct TestAppleSuggestion: View { @Environment(\.locale) var locale: Locale var body: some View { VStack { VStack { Text("locale: \(locale.identifier)") Text(AttributedString(localized: LocalizedStringResource( "welcome", locale: locale ))) Text(AttributedString(localized: "welcome", locale: locale )) } } } } #Preview { TestAppleSuggestion().environment(\.locale, Locale(identifier: "fr-CA")) } Heres What I see in SwiftUi Previews The Localization is working for the LocalizedStringResource but not to the AttributedString. Why?
3
0
450
Jun ’26
Non renewing subscriptions upload new binary
My non renewing subscriptions got rejected as I move from subscription to one time payment model. It says "In order to approve your new In-App Purchase business model, we have to verify the purchasability of the items being sold. Please upload a new binary and make sure that your new In-App Purchase products are available for purchase at the time of review." But the thing is I uploaded to new builds since then and both got approved and live but this error is still stuck. Submit for review is greyed out.
1
0
478
Jun ’26
setAlternateIconName system alert ignores CFBundleLocalizations and forces English in iOS 26.1+ (Unexpectedly triggers sceneWillResignActive)
Environment: Xcode Version: Xcode 26.3 Affected iOS Versions: iOS 26.1 and later Working iOS Versions: iOS 26.0 and earlier Tested Devices: iPhone 15 Pro (iOS 26.2) - ❌ Bug presents iPhone 17 (iOS 26.1) - ❌ Bug presents iPhone Air (iOS 26.0) - ✅ Works as expected iPhone 16 Pro Max (iOS 18.0) - ✅ Works as expected Description: We have identified a severe localization regression regarding the setAlternateIconName(_:completionHandler:) API starting from iOS 26.1. Our application is strictly restricted to support only Traditional Chinese (zh-TW / zh-Hant). We have correctly configured CFBundleLocalizations, CFBundleDevelopmentRegion, and explicitly set CFBundleAllowMixedLocalizations to YES in our Info.plist. In iOS 26.0 and earlier, when changing the app icon, the system alert correctly displays in Traditional Chinese. However, in iOS 26.1 and later, the alert unexpectedly falls back to English, completely ignoring the app's localization constraints and the user's preferred device language. Crucial Observation: We noticed a significant behavioral change: in iOS 26.1+, invoking setAlternateIconName forces the app to enter the sceneWillResignActive state before the alert appears. This behavior did not exist prior to iOS 26.1. This strongly suggests that the alert has been moved to an out-of-process overlay managed by SpringBoard. It appears that the system cache is failing to properly resolve the app's CFBundleLocalizations during this out-of-process presentation. Steps to Reproduce: Create an iOS application restricted to Traditional Chinese (zh-TW). Set CFBundleDevelopmentRegion to zh-Hant in Info.plist. Set the CFBundleLocalizations array to contain only zh-TW (or zh-Hant). Set CFBundleAllowMixedLocalizations to YES. Implement setAlternateIconName to trigger the app icon change. Run the app on a device running iOS 26.1 or later (ensure the device's system language is set to Traditional Chinese). Trigger the icon change action. Expected Result: The app should NOT trigger sceneWillResignActive (maintaining iOS 26.0 behavior); OR the out-of-process system alert must correctly read the Info.plist and display the prompt in Traditional Chinese. Actual Result: The app immediately triggers sceneWillResignActive and loses focus. The system overlay alert appears but ignores all Traditional Chinese settings, displaying an English interface instead. Any insights or workarounds from the engineering team would be highly appreciated. We'd like to know if this is a known SpringBoard rendering issue in iOS 26.1+. Thank you!
2
0
923
May ’26
Navigation Title and UIAlertViewController actions truncated/cut on iPhone 13/14/15 Pro Max with iOS 26.4/5 using Cyrillic localisation
Since iOS 26.4, we are observing an issue on iPhone 13 Pro Max, iPhone 14 Pro Max, and iPhone 15 Pro Max where text is truncated on first presentation when using Bulgarian (Cyrillic) localization. The issue affects: UINavigationBar title (both inline and large titles) UIAlertController action titles Behavior: On first presentation, the text is truncated/cut off. On subsequent presentations, the layout appears correct. Adding a zero-width space (\u{200B}) before the last character of the string prevents truncation. This appears to slightly increase the layout width calculation and avoids the issue. Has anyone else encountered this behavior or found a more appropriate workaround?
1
0
617
May ’26
String Catalogs auto-generated symbols located in Swift Packages with default Main Actor isolation don't compile with Xcode 26.4
Hello, I've already reported this issue via Feedback Assistant a month ago (FB22340897) but it's still open and I'd like to know whether I can expect something to be changed regarding it. Here are the details: It seems that Xcode 26.4 started specifying nonisolated for the resourceBundleDescription in the generated stringSymbols files for Swift packages: from: private let resourceBundleDescription = LocalizedStringResource.BundleDescription.atURL(resourceBundle.bundleURL) to: private nonisolated let resourceBundleDescription = LocalizedStringResource.BundleDescription.atURL(resourceBundle.bundleURL) This causes a compilation error: Main actor-isolated default value in a nonisolated context when the Package.swift for the Swift Package in which the string catalog is located specifies: swiftSettings: [.defaultIsolation(MainActor.self)] Since all tools (String Catalogs, Swift Packages and default actor isolation to be Main Actor) are recommended by Apple, I believe it should be possible to use all these together like before Xcode 26.4.
1
0
2.3k
Apr ’26
Under what conditions can a LocalizedStringResource be serialised?
I had a need to store a localised string in a shared file used by other applications, and noticed that LocalizedStringResource conforms to Codable -- and indeed, if I encode a string from App A, then switch to App B, B is able to read the value and load different localisations of that string out of App A's bundle. Very cool. This isn't clearly documented (the documentation for LocalizedStringResource just mentions cross-process use, not generally longer-term storage), so I wondered if there are any caveats to be aware of when using this approach? I am aware that LocalizedStringResource is just a reference, so obviously if App A is deleted, it becomes a kind of dangling reference and will presumably fall back to its default value (which is included in the encoded representation). But I also noticed that the encoded LSR includes a sandbox extension token. Is there anything in particular to be aware of with that? Is it time-limited? One thing I did notice, that is quite annoying (potentially a bug) is that if I serialise and deserialise a record containing a LSR, it no longer compares as == to its previous self. That is because the original LSR did not contain a sandbox extension token, but as part of encoding it, that field seems to get populated. I'm not sure if there is a good workaround there; perhaps the extension token could be ignored from ==? That would result in extension tokens being dropped (e.g. if you had two LSRs in a Dictionary, differing only by the sandbox token, they would still be considered substitutable and already "in" the dictionary), but perhaps that's fine.
1
0
592
Apr ’26
How to change app language on App Store Connect?
Hi everyone, I’d like to update the language information of my app on the App Store. At the moment, the app is shown as available only in English, but I would like to add Italian (or other languages). Could someone explain the exact steps to do this in App Store Connect? Where can I add or edit supported languages? Is this done in the app metadata or does it depend on the localizations included in the build? Do I need to submit a new version of the app for this change? Thanks in advance!
1
0
236
Apr ’26
App approved but subscriptions not working: Says localization was rejected without providing any reason
Submitted my app and it was approved by Apple. I then downloaded it from the app store and went through onboarding however when I tried to complete a purchase it failed. Went back to app store connect and saw that there is an issue with my subscriptions. Says localization is rejected but does not provide any reason why. Any ideas?? Everything worked fine with sandbox account.
5
0
662
Apr ’26
Localization in Swift macOS console Apps.
Is it possible to build localization into console apps, developed in SwiftUI in Xcode26. I have created a catalog, (.xcstrings file) with an English and fr-CA string. I have tried to display the French text without success. I am using the console app to test a package which also has English/French text. English text works fine in both package and the console main, but I cannot generate the French. From what I can discover so far it's not possible without bundling it as a .app, (console app). Looking for anyone who has crossed this bridge.
7
0
1.1k
Mar ’26
.xcstrings catalog creates a massive git diff upon the slightest change
Every time I touch (add a key, remove a key, even add a key, then remove it) the Strings Catalog .xcstrings file, it re-renders the entire file and creates a 18 thousand line dif. When I looked closer, it changes the whitespace before colons! "version": "1.0" "version" : "1.0" it does so for every JSON node. This makes the whole feature useless, because we wont be able to see what we changed upon code review (diff is unprintable in the github interface) and every time we change a single translation, we will be stacking 18k lines diff. Not to mention merge conflicts?
2
0
329
Mar ’26
What populates the App Store "Languages" list — CFBundleLocalizations or .lproj folders?
I have a Capacitor (web-based) iOS app. All UI strings are localized in the JavaScript layer at runtime, so the app bundle has no per-language storyboard or .strings resources. I want the App Store product page's "Languages" section to list every language we support (en, de, es, fr, it, pt-BR, tr) — right now it only shows English. In our last release I added a CFBundleLocalizations array to Info.plist with all 7 codes. That build is live, but the product page still shows only "English." My questions: Does the App Store "Languages" list derive from CFBundleLocalizations, from the actual .lproj folders compiled into the binary, or both? If .lproj folders are required, is adding empty/stub .lproj folders (registered in the project's knownRegions) enough, or do they need real localized content? After a build with the correct setup goes live, how long until the list refreshes? Thanks — I want to confirm the correct approach before shipping the next build.
Replies
1
Boosts
0
Views
329
Activity
Jul ’26
AppIntents and String catalog: how can we support both singular and plural forms for TypeDisplayRepresentation (used by DeleteIntent in the Shortcuts app for example)
Hello, I’m implementing the AppIntents framework in my app. I want to translate the TypeDisplayRepresentation that is used in the Shortcuts app UI like in a DeleteIntent (see my feedback about this: FB23451186 for more context). In the “Accelerating app interactions with App Intents” sample code we can see that this is done using a .stringsdict file, as follows for the “Trail” key (singular and plural): <key>Trail</key> <dict> <key>NSStringLocalizedFormatKey</key> <string>%#@VARIABLE@</string> <key>VARIABLE</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>one</key> <string>Trail</string> <key>other</key> <string>Trails</string> </dict> </dict> I want to use a String catalog instead of a .stringsdict file because all my strings are in a String catalog. I tried to migrate the AppIntents.stringsdict file manually but it failed with an error: “An error occurred when migrating AppIntentsSampleApp/Resources/AppIntents.stringsdict: This stringsdict cannot be migrated: Missing required key 'NSStringFormatValueTypeKey' inside 'Trail' -> 'VARIABLE’” So I manually added a NSStringFormatValueTypeKey like this in the .stringsdict file: <key>Trail</key> <dict> <key>NSStringLocalizedFormatKey</key> <string>%#@VARIABLE@</string> <key>VARIABLE</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>NSStringFormatValueTypeKey</key> <string>lld</string> <key>one</key> <string>Trail</string> <key>other</key> <string>Trails</string> </dict> </dict> And then I’ve been able to migrate the .stringsdict file into a String catalog. The string catalog looks like this after migration: "Trail" : { "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { "state" : "translated", "value" : "%#@VARIABLE@" }, "substitutions" : { "VARIABLE" : { "formatSpecifier" : "lld", "variations" : { "plural" : { "one" : { "stringUnit" : { "state" : "translated", "value" : "Trail (Catalog)" } }, "other" : { "stringUnit" : { "state" : "translated", "value" : "Trails (Catalog)" } } } } } } } } This works, which is nice. But I tried to reproduce the same result by having a %#@VARIABLE@ in my LocalizedStringResource defaultValue like this: TypeDisplayRepresentation( name: LocalizedStringResource( "Flower", defaultValue: "%#@VARIABLE@", table: "AppIntents" ), numericFormat: LocalizedStringResource( "\(placeholder: .int) flower", table: "AppIntents" ) ) But the String catalog doesn’t support that apparently, I can’t get a “substitution” object in my catalog, so I have to manually do it using the source code which is not ideal and painful. Is there a way to support this kind of substitution with no actual plural token in the string as we can see for the %#@VARIABLE@ for Trail? Thank you, Regards, Axel
Replies
1
Boosts
0
Views
647
Activity
Jun ’26
I designed my app in 5 languages in please help!
Hey everyone I’m new here. I designed my app in 5 languages and I updated each one description, promotional, what’s new etc one by one step by step then submitted a new build but my app still says English under languages. I did everything by the book. If anyone has any advice or can check the Apple Store Chinese, Spanis, Japanese, Portuguese country app stores and look for my app golden edge ai and atleast confirm it’s showing up in those locales I would be eternally grateful! 🙏 🙏 https://apps.apple.com/us/app/golden-edge-gold-ai/id6774464201
Replies
4
Boosts
0
Views
696
Activity
Jun ’26
Google Search is indexing my App Store link in Chinese instead of my Primary Language or English
Hi everyone, I recently launched my app, when searching for the app on Google, the official App Store link that appears in the search results is from the Chinese App Store. My app's primary language is correctly configured in App Store Connect, and I would naturally expect the search result to display in that primary language, or at least default to English. Has anyone else experienced this issue where Google indexes the wrong regional App Store page (e.g., pulling a Chinese localization instead of the global or primary one)? Is there a specific setting or metadata in App Store Connect I need to double-check to force the correct locale, or is this purely a Google crawling anomaly that usually resolves itself over time? Thanks in advance for any insights!
Replies
2
Boosts
0
Views
740
Activity
Jun ’26
Autocorrection and predictive text support for additional Cyrillic languages
Hello Apple Keyboard / Internationalization team, I would like to ask about autocorrection and predictive text support for additional Cyrillic-based languages, especially Kazakh, Kyrgyz, Chuvash, and Ingush. These languages use Cyrillic scripts with their own letters, spelling rules, and word-frequency patterns. When users type in these languages, Russian-based autocorrection or missing language-specific correction can produce incorrect suggestions or replacements. My questions are: Are there plans to expand autocorrection and predictive text support for more Cyrillic-based languages? Is there a recommended way for developers or language communities to provide dictionaries, word-frequency lists, corpora, or other linguistic data to help improve autocorrection? Should this type of request be submitted through Feedback Assistant, Developer Forums, or another Apple channel? I have corpus-based frequency data and language resources for multiple Cyrillic-based languages and would be happy to share them if useful. Thank you. Ali Kuzhuget
Replies
1
Boosts
0
Views
1.7k
Activity
Jun ’26
Cyrillic keyboard long-press support for additional languages
Hello Apple Keyboard / Internationalization team, In the current beta, I noticed new keyboard support for Tuvan and Sakha. Thank you — this is very important for Cyrillic-based languages and their communities. I also noticed improvements to the Russian keyboard long-press options, but some Cyrillic letters used by other languages still seem to be missing. For example, Ossetian uses Ӕ ӕ, and this character does not appear as a long-press option. My questions are: Are there plans to expand the Russian keyboard long-press mappings to cover more Cyrillic-based languages? Is there a recommended way for language communities or developers to provide corpus/frequency data and character mappings to help improve keyboard support? Should this type of request be submitted through Feedback Assistant, Developer Forums, or another channel? I have corpus-based frequency data and long-press mapping data for many Cyrillic-based languages and would be happy to share it if useful. Thank you. Ali Kuzhuget
Replies
1
Boosts
0
Views
2k
Activity
Jun ’26
Is there a way to force a fallback language?
My app is written with Spanish declared as the original, base language. I have localized to 5 other languages. English, German, Italian, French, and Portuguese. If I have someone who's phone is set to an unsupported language, like Polish, and they don't have one of my supported languages in their list of "Preferred Languages" (Settings -> General -> Language and Region), then the app defaults to Spanish. Is it possible to force my app to default to English instead, without changing the original, base language declaration of the app? It appears that making that change is pretty difficult, according to documentation.
Replies
2
Boosts
0
Views
1.6k
Activity
Jun ’26
Localising UISegmentedControl (storyboard based)
In this iOS app, with UIKit in Swift, I create a UISegmentedControl in stroryboard. I define the text for each segmentTitles in IB ,and need to localise. I have tried in the main.xxx files "id.segmentTitles" = ["a", "b", "c", "d", "e"]; to no avail. I understand this is a very very old issue that UISegmentedControl are not localized from stroryboard: https://stackoverflow.com/questions/12884751/uisegmentedcontrol-and-localization I tried to use a similar approach as for UITextView (which are not either localized) helpTextView.text = NSLocalizedString("id.text", tableName: "Main", comment: "helpTextView") But cannot make it. I found a work around, by localising in code: let seg0 = NSLocalizedString("a", comment: "Segment") segmentedControl.setTitle(seg0, forSegmentAt: 0) However, I get error messages in log unless I clear the segment titles in IB: ERROR: id.segmentTitles[0] not found in table Main of bundle CFBundle 0x600003b101c0 Is there a solution to this ?
Replies
4
Boosts
0
Views
710
Activity
Jun ’26
AttributedString Localization does not seem to work
I have this code struct TestAppleSuggestion: View { @Environment(\.locale) var locale: Locale var body: some View { VStack { VStack { Text("locale: \(locale.identifier)") Text(AttributedString(localized: LocalizedStringResource( "welcome", locale: locale ))) Text(AttributedString(localized: "welcome", locale: locale )) } } } } #Preview { TestAppleSuggestion().environment(\.locale, Locale(identifier: "fr-CA")) } Heres What I see in SwiftUi Previews The Localization is working for the LocalizedStringResource but not to the AttributedString. Why?
Replies
3
Boosts
0
Views
450
Activity
Jun ’26
Non renewing subscriptions upload new binary
My non renewing subscriptions got rejected as I move from subscription to one time payment model. It says "In order to approve your new In-App Purchase business model, we have to verify the purchasability of the items being sold. Please upload a new binary and make sure that your new In-App Purchase products are available for purchase at the time of review." But the thing is I uploaded to new builds since then and both got approved and live but this error is still stuck. Submit for review is greyed out.
Replies
1
Boosts
0
Views
478
Activity
Jun ’26
setAlternateIconName system alert ignores CFBundleLocalizations and forces English in iOS 26.1+ (Unexpectedly triggers sceneWillResignActive)
Environment: Xcode Version: Xcode 26.3 Affected iOS Versions: iOS 26.1 and later Working iOS Versions: iOS 26.0 and earlier Tested Devices: iPhone 15 Pro (iOS 26.2) - ❌ Bug presents iPhone 17 (iOS 26.1) - ❌ Bug presents iPhone Air (iOS 26.0) - ✅ Works as expected iPhone 16 Pro Max (iOS 18.0) - ✅ Works as expected Description: We have identified a severe localization regression regarding the setAlternateIconName(_:completionHandler:) API starting from iOS 26.1. Our application is strictly restricted to support only Traditional Chinese (zh-TW / zh-Hant). We have correctly configured CFBundleLocalizations, CFBundleDevelopmentRegion, and explicitly set CFBundleAllowMixedLocalizations to YES in our Info.plist. In iOS 26.0 and earlier, when changing the app icon, the system alert correctly displays in Traditional Chinese. However, in iOS 26.1 and later, the alert unexpectedly falls back to English, completely ignoring the app's localization constraints and the user's preferred device language. Crucial Observation: We noticed a significant behavioral change: in iOS 26.1+, invoking setAlternateIconName forces the app to enter the sceneWillResignActive state before the alert appears. This behavior did not exist prior to iOS 26.1. This strongly suggests that the alert has been moved to an out-of-process overlay managed by SpringBoard. It appears that the system cache is failing to properly resolve the app's CFBundleLocalizations during this out-of-process presentation. Steps to Reproduce: Create an iOS application restricted to Traditional Chinese (zh-TW). Set CFBundleDevelopmentRegion to zh-Hant in Info.plist. Set the CFBundleLocalizations array to contain only zh-TW (or zh-Hant). Set CFBundleAllowMixedLocalizations to YES. Implement setAlternateIconName to trigger the app icon change. Run the app on a device running iOS 26.1 or later (ensure the device's system language is set to Traditional Chinese). Trigger the icon change action. Expected Result: The app should NOT trigger sceneWillResignActive (maintaining iOS 26.0 behavior); OR the out-of-process system alert must correctly read the Info.plist and display the prompt in Traditional Chinese. Actual Result: The app immediately triggers sceneWillResignActive and loses focus. The system overlay alert appears but ignores all Traditional Chinese settings, displaying an English interface instead. Any insights or workarounds from the engineering team would be highly appreciated. We'd like to know if this is a known SpringBoard rendering issue in iOS 26.1+. Thank you!
Replies
2
Boosts
0
Views
923
Activity
May ’26
Navigation Title and UIAlertViewController actions truncated/cut on iPhone 13/14/15 Pro Max with iOS 26.4/5 using Cyrillic localisation
Since iOS 26.4, we are observing an issue on iPhone 13 Pro Max, iPhone 14 Pro Max, and iPhone 15 Pro Max where text is truncated on first presentation when using Bulgarian (Cyrillic) localization. The issue affects: UINavigationBar title (both inline and large titles) UIAlertController action titles Behavior: On first presentation, the text is truncated/cut off. On subsequent presentations, the layout appears correct. Adding a zero-width space (\u{200B}) before the last character of the string prevents truncation. This appears to slightly increase the layout width calculation and avoids the issue. Has anyone else encountered this behavior or found a more appropriate workaround?
Replies
1
Boosts
0
Views
617
Activity
May ’26
String Catalogs auto-generated symbols located in Swift Packages with default Main Actor isolation don't compile with Xcode 26.4
Hello, I've already reported this issue via Feedback Assistant a month ago (FB22340897) but it's still open and I'd like to know whether I can expect something to be changed regarding it. Here are the details: It seems that Xcode 26.4 started specifying nonisolated for the resourceBundleDescription in the generated stringSymbols files for Swift packages: from: private let resourceBundleDescription = LocalizedStringResource.BundleDescription.atURL(resourceBundle.bundleURL) to: private nonisolated let resourceBundleDescription = LocalizedStringResource.BundleDescription.atURL(resourceBundle.bundleURL) This causes a compilation error: Main actor-isolated default value in a nonisolated context when the Package.swift for the Swift Package in which the string catalog is located specifies: swiftSettings: [.defaultIsolation(MainActor.self)] Since all tools (String Catalogs, Swift Packages and default actor isolation to be Main Actor) are recommended by Apple, I believe it should be possible to use all these together like before Xcode 26.4.
Replies
1
Boosts
0
Views
2.3k
Activity
Apr ’26
Under what conditions can a LocalizedStringResource be serialised?
I had a need to store a localised string in a shared file used by other applications, and noticed that LocalizedStringResource conforms to Codable -- and indeed, if I encode a string from App A, then switch to App B, B is able to read the value and load different localisations of that string out of App A's bundle. Very cool. This isn't clearly documented (the documentation for LocalizedStringResource just mentions cross-process use, not generally longer-term storage), so I wondered if there are any caveats to be aware of when using this approach? I am aware that LocalizedStringResource is just a reference, so obviously if App A is deleted, it becomes a kind of dangling reference and will presumably fall back to its default value (which is included in the encoded representation). But I also noticed that the encoded LSR includes a sandbox extension token. Is there anything in particular to be aware of with that? Is it time-limited? One thing I did notice, that is quite annoying (potentially a bug) is that if I serialise and deserialise a record containing a LSR, it no longer compares as == to its previous self. That is because the original LSR did not contain a sandbox extension token, but as part of encoding it, that field seems to get populated. I'm not sure if there is a good workaround there; perhaps the extension token could be ignored from ==? That would result in extension tokens being dropped (e.g. if you had two LSRs in a Dictionary, differing only by the sandbox token, they would still be considered substitutable and already "in" the dictionary), but perhaps that's fine.
Replies
1
Boosts
0
Views
592
Activity
Apr ’26
Language Translation
when we launch the application and change the language from german/french to english or any other language then in also it is changing app language, but bluetooth connection screen with pair or cancel alert is showing on previous selected language. Since that alert is system alert, is there any wayto debug/resolve that issue.
Replies
3
Boosts
0
Views
1.6k
Activity
Apr ’26
How to change app language on App Store Connect?
Hi everyone, I’d like to update the language information of my app on the App Store. At the moment, the app is shown as available only in English, but I would like to add Italian (or other languages). Could someone explain the exact steps to do this in App Store Connect? Where can I add or edit supported languages? Is this done in the app metadata or does it depend on the localizations included in the build? Do I need to submit a new version of the app for this change? Thanks in advance!
Replies
1
Boosts
0
Views
236
Activity
Apr ’26
App approved but subscriptions not working: Says localization was rejected without providing any reason
Submitted my app and it was approved by Apple. I then downloaded it from the app store and went through onboarding however when I tried to complete a purchase it failed. Went back to app store connect and saw that there is an issue with my subscriptions. Says localization is rejected but does not provide any reason why. Any ideas?? Everything worked fine with sandbox account.
Replies
5
Boosts
0
Views
662
Activity
Apr ’26
Localization in Swift macOS console Apps.
Is it possible to build localization into console apps, developed in SwiftUI in Xcode26. I have created a catalog, (.xcstrings file) with an English and fr-CA string. I have tried to display the French text without success. I am using the console app to test a package which also has English/French text. English text works fine in both package and the console main, but I cannot generate the French. From what I can discover so far it's not possible without bundling it as a .app, (console app). Looking for anyone who has crossed this bridge.
Replies
7
Boosts
0
Views
1.1k
Activity
Mar ’26
.xcstrings catalog creates a massive git diff upon the slightest change
Every time I touch (add a key, remove a key, even add a key, then remove it) the Strings Catalog .xcstrings file, it re-renders the entire file and creates a 18 thousand line dif. When I looked closer, it changes the whitespace before colons! "version": "1.0" "version" : "1.0" it does so for every JSON node. This makes the whole feature useless, because we wont be able to see what we changed upon code review (diff is unprintable in the github interface) and every time we change a single translation, we will be stacking 18k lines diff. Not to mention merge conflicts?
Replies
2
Boosts
0
Views
329
Activity
Mar ’26