Post not yet marked as solved
I have a in-house framework that I share between the main app and the widget.
The framework contains some localized strings.
These strings show up in correct language in the main app but on the widget they only show up in English.
I'm guessing the localized strings from the framework are not getting bundled in the widget extension.
Anybody with the same problem?
Post not yet marked as solved
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.
Post not yet marked as solved
If i remove a country from my app's availability list, will users in that country that already had my app installed receive updates and see the update available in the appstore?
Post not yet marked as solved
We would like to launch our app in the US, it's currently live in the UK only. For us this means we want it also to be available in the US app store and for US people who sign up to our programme to be able to view US related content within the app.
I've been unable to easily find any documentation about how to go about this, how submission would change/be different if so, what changes we would need to make, app store nuances etc. I am not the person who deals with the submissions, app store connect etc but I run one of the scrum teams dealing with this launch.
Is there an article or a checklist about this?
Post not yet marked as solved
Hi everyone,
Currently it is not possible to activate an app explicitly for Liechtenstein in App Store Connect.
Is the country enabled via another country/region?
Or have I overlooked something?
Post not yet marked as solved
I have my app localized for many languages, but I'd like to limit the available app languages to only a subset of those, because the content is not ready for all of them.
I don't want to delete localization files, because they contain some useful translations that I will use in the future.
The only thing I was able to find and try out is this piece of code:
class AppDelegate: NSObject, UIApplicationDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
UserDefaults.standard.set(["Base", "pl", "de", "ru"], forKey: "AppleLanguages")
UserDefaults.standard.synchronize()
ApplicationDelegate.shared.application(
application,
didFinishLaunchingWithOptions: launchOptions
)
return true
}
}
but unfortunately it does not work. When I launch Settings of my app, I can still choose from about 20-30 languages that I have already some translations for.
Post not yet marked as solved
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?
Post not yet marked as solved
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.
Post not yet marked as solved
How to change app distribution methods to public not private
Post not yet marked as solved
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.
Post not yet marked as solved
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?
Post not yet marked as solved
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?
Post not yet marked as solved
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,
Post not yet marked as solved
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.
Post not yet marked as solved
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..
Post not yet marked as solved
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?
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?
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
Post not yet marked as solved
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?
Post not yet marked as solved
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?