I want to add English language to my app, because right now the app is only Swedish language. Under the "Project" and "Localizations" there is already English there:
.
So all the text I have in my app is in Swedish, but I also want to add English. I do have many .swift files with many strings and arrays:
Any tips how I can do this? I have seen a few tutorials, but in those they started from a new project, and the base language was English, but for me it is Swedish. Thanks in advance for help.
Related
I have a project which is nearly completed.
The language I used in Storyboard and in code is German. I use Base localization (which is German because the Strings in Storyboard and Code are German). The App is also localized in English.
Basically I want that every non-German user can use my App in English but I also want to use German language in Storyboard and code.
For that, I set the Base localization to English (I set the language to "EN" in project.pbxproj, and I set the language to "United States" in the Plist file).
What I want is working but I think this is not the correct way to do it because in my current configuration Xcode thinks that my Base is English (because I set it to English) but in fact it's German.
If I would set the Plist file and the project.pbxproj file back to DE users which are not German and not English would have to use my App in German. Or am I wrong?
What's the correct way to achieve that German users can use my App in German and all others should see the English version.
I think you should set the base language to English, add German for additional languages, so the APP for any users uses German on the phone will display German. Otherwise, the APP for all users who do not use German will display the base language, which is English. I hope this will help you.
Check this to set up the development language on XCode.
Following Ray Wenderlich tutorial (https://www.raywenderlich.com/180356/ios-internationalization), the Localizable.strings is as following. Notice there is no Localizable.strings(Base)
But in some other tutorials, they would use Base instead of English, so did I in my project as follow.
My iPhone's preferred language order is English then Chinese and is currently set to English. But whenever I run the app, it goes to Chinese except when I explicitly edit scheme to ask Xcode to run it in English. Does that mean I should have Localizable.strings (English) instead of Localizable.strings (Base)?
Another question, I have Main.storyboard (Base) and Main.strings (Chinese (Simplified)) under Main.storyboard. But no matter what I do, the storyboard always shows up in Chinese version. What have I done wrong?
=== Update ===
I played around with it (simply remove and recreate, nothing changed), and then magically the localization works as expected: The app default to English, which is my system language, and switches to Chinese when I edit scheme. However, now my storyboard is stuck with (Base) version no matter what I do.
I am no expert on this, but as I understand the Base file is a fallback if your app doesn't have a Localizable.strings file for the user's device language.
So if you have English and Chinese as localization files, but your preferred languages are German and Japanese, the system will check the Base file for strings.
In your case you have Chinese and the base files. English is not found, so it takes the other preferred language (Chinese). Therefore the base strings are not used -- the app defaults to the Chinese localization.
To solve the problem, you need to make an English strings file in addition to your base strings.
I have an application that must support two languages: english and french.
English is the Development Language and I also added French.
I have three children below the Main.storyboard: Main.storyboard(Base), Main.storyboard(English) and Main.storyboard(French). Unfortunately the Main.storyboard(Base) has the texts in french and my English file is ignored.
How can I fix this? I struggle already for 2 hours. When I run the application all the texts are in french tough the device language is english.
I tried to change all the strings in the base storyboard to be in english but after that some of the french texts from Main.storyboard(french) are ignored. It driving me nuts.
I have build an iphone app and I started with Dutch texts in the app. I would like to expand it to other countries so I Localized the app and added English.
So I have now to localization folders en.lproj and nl.lproj.
When I install the app on the iphone and set the language to Dutch I get the Dutch language in the App. When I switch to English I get this. But when I switch to German I get the Dutch language. I would like to have default the English language when the is no localization folder for it.
How do I do this?
A little late to the party, but just recently run into this issue and somebody helped me, so here is the magic:
Suppose your app supports English and Spanish.
If the list of languages in the Settings app is Portuguese, Spanish, English then Spanish will be shown to the user. If the list has been Portuguese, English, Spanish then English would be shown to the user.
In short, the language are loaded in order, so if you want English to be loaded when German (or any other missing language) is set, your settings screen should read:
German | English | Dutch | everything else
But you don't know how your users has the languages set and English might be at the bottom. So far, the best solution workaround I found was to manually change the Locale order on startup so English is always second, and therefore, default.
In your Info.plist you have to set the Localization native development region to English (en) and it should work fine.
I couldn't find any similar questions, so here we go:
I am working on an iOS app that for the first release will only be in french, but we plan to release an english version as well in the future. At this point, I thought it was a good idea to use NSLocalizedString for all the text, so that the app will be ready when the english language will be required. However, I would really like to use english as the key value in my code:
aString = NSLocalizedString(#"Yes", #"Text for positive answer");
instead of
aString = NSLocalizedString(#"Oui", #"Text for positive answer");
Then I want to run genstrings, and localize the .strings file in french (and give it to the translators). But if I do it like that, how can I get rid of the "original" english .strings file? Am I totally wrong here, and do I have to use french for now in my code?
If you are developing the app in English and localizing it into French, I wonder why you would want to actively prevent the app from running in English. If some users in your target market (France only, I imagine?) prefer to run their iOS device in English language, why deny them their preferred language? Or is it because you won't be doing QA of the English version and therefore don't wish to expose it yet?
In any case, I believe that you can restrict the list of supported languages by simply editing your project metadata. In XCode the list of supporting languages is shown on this page -- simply remove English and I believe that your English localizations, even if they are present in your project, won't be used (I haven't tested this but I doubt it would delete your existing English files, it should just remove them from the application's supported languages list)
You can do your whole project in english, keep english words for keys in the localizable.strings files, but keep only the fr.lproj folder, and in the plist set the supported languages only to french.