I trying a simple hell world qt quick app on ios & android.
I did the following:
1. Took the most basic hello world qt quick project with "Hello World" written with qsTr() of course
2. Ran lupdate on main.qml & created main_no.ts for norwegian
3. Opened main_no.ts in linguist app. Gave the translation for "Hello World" as "Hei Verden"
4. Saved main_no.ts
5. Ran lrelease on main_no.ts. This created main_no.qm
6. Opened my project's .pro file and added the following
TRANSLATIONS += main_no.ts
Rebuilt my app
Ran it on iPhone where the language was set to english
App launched. The text "Hello World" showed up. All great untill now
Next I changed the language to Norwegian ("Norsk Bokmal").
Relaunched the app & it crashed !!!!!
After this it keeps crashing on every launch even if I change the language back to English.
Can anyone please tell what is wrong that I am doing ?
Thanks a many in advance.
Related
I'm developing an app with Swift + Spritekit with the project name as simple as "learningApp".
A good step and several hours into the development my team decided to name the app (with danish letters) "Lær Toner" (which in English means to learn tones).
However, when doing so - the entire project fails in Xcode. The .swift and .sks scene-files are not able to communicate and the console outputs this message:
2019-10-31 00:09:47.549357+0100 Lær Toner[18206:292858] Unable to load custom class 'LaunchScreen' from module '(null)'
Just to be clear, here's images:
So if I change the name to "Learn Tones" there are no issues at all and the app works as intended. As soon as I change it back to "Lær Toner" and run the app the console outputs the message above.
I tried to change it via "Build Settings" also - I also tried to reboot Xcode, clean the build folder, but nothing have helped so far.
I can see in the Danish App store that multiple applications have Danish letters like Æ, Ø and Å in the name, so that leads to think it's (hopefully) a minor thing I've missed.
I've searched the world wide web till the end, but I have not found anything close to a solution to this issue.
If anyone has any input, or knows how to deal with this, I'd be a happy developer.
Thanks in advance.
I found the same issue when i have changed the display name from the 'General' tab of my target settings.
The solution is;
Go back to the previous name by discarding the changes you have made, and make sure the app is running correctly.
Uninstall the app from your device or simulator.
Clean the project.
The important thing is to add a new key on your info.plist
<key>CFBundleDisplayName</key>
<string>Lær Toner</string>
And it will be ok.
Is it possible to change the Apple Watch simulator locale? I want to test the localization of my watch app. I can change language on an iPhone simulator, but the watch simulator is always in English. I can't find any language settings:
Most certainly not possible neither via Watch Simulator UI nor iOS Simulator Watch app, but you can copy over values from iOS Simulator folder located in:
<simulator_dev_folder>/data/Library/Preferences/.GlobalPreferences.plist
to the same file in your Watch Simulator.
Plist keys to look for:
AppleLocale
AppleLanguages
AppleKeyboards
You cannot change the Apple Watch simulator locale, but you can change the locale of your Watch App. I use this to test localization. To change your app locale, go edit the Watch App Scheme: Run->Options->Application Language - choose the language and re-run your Apple watch app.
Run|Options|Application Language
Unfortunately it works only on Xcode 7.2, not on Xcode 7.1. There is no other known possibility.
EDIT
There is a brand new library for language and locale automate testing. It's called AutoMate. The documentation can be found here.
I post my comment for a more readable format.
Hope that can be a "viable" work around
Create the different localization files: English, French, Spanish, Chinese…
localize all elements here
then, open the English files
copy the content of the language you want to test after the present english text (that will supersede it).
To come back to english, delete this added foreign text.
I tested, it works.
I just get an error log, without apparent consequence
Watch Extension[3520:334638] [default] -[SPRemoteInterface _interfaceControllerClientIDForControllerID:]:2140: ComF: clientIdentifier for interfaceControllerID:DC00003 not found
But that is good enough to test localization on simulator.
Removing the extra text clears the error.
I improved this answer.
https://stackoverflow.com/a/54883097/2519218
Change directory to your simulator devices. eg. /Users/$USER_NAME/Library/Developer/CoreSimulator/Devices
Detect your watch simulator. I used ls -trl command after build. eg. 046D5EDA-1808-4BE2-A16E-04DF0324B032
plutil -convert xml1 ./046D5EDA-1808-4BE2-A16E-04DF0324B032/data/Library/Preferences/.GlobalPreferences.plist -o change_global.plist
Edit change_global.plist AppLanguages's section you want to use by vim. I wanted to use ja, so it's like <key>AppleLanguages</key> <array> <string>ja</string> </array>.
Put change_global.plist to ./046D5EDA-1808-4BE2-A16E-04DF0324B032/data/Library/Preferences/.GlobalPreferences.plist. like cp change_global.plist ./046D5EDA-1808-4BE2-A16E-04DF0324B032/data/Library/Preferences/.GlobalPreferences.plist .
Restart simulator.
Unfortunately, it doesn't seem like you can change the language in the watch simulator at this time. On the device, it's located in the iPhone Watch app under General -> Language & Region. However, on the iPhone simulator, there isn't even an option for the General section. This is all that shows up under the Watch app:
I want to add some languages to my application. At the beginning, I started just in german. So after I finished the application, I wanted to add english to it.
So I opened up the project file, and saw that my applications "Development Language" is english. So I added german there and added german in my Localizable.strings file and started to change the english file.
After I was finished, I saw that in my info.plist the key Localization native development region was set to "en". So I changed it to "de". Unfortunately, the "Development Language" was still "english". So I opened up the .xcodeproj file with a text editor and changed the "Development Language" to german. Now my "Development Language" is set correctly to german.
"Use Base Localization" was checked by default.
But now I have the problem, when I run my application with a german device, the whole app is in english and not german. When I run the app with an english device, it's in english,too.
Can someone help me?
Thanks!
Ok, it seems like it's a Xcode/iOS simulator bug... It works when I follow the instructions on the top of this question.
I was following one of Ray Wenderlich's tutorials on localization but I can't seem to get it working.
I've set my project up for localization in English and French and I have a locaziable.strings file for each:
The French file has the correct (well as far as Google translate goes) French versions of my string:
I'm setting the strings by calling the correct key from the localizable.strings file:
NSString* strTitle = [NSString stringWithFormat:NSLocalizedString(#"Title", Nil)];
And I have the simulator set to French (BTW: Whenever I do a language change the simulator crashes).
But it is not pulling from the correct localizable.strings file. It's still displaying in English:
Am I doing something wrong?
If you are using xcode 6.1.1 and iOS sdk 8.1,try this workaround.
It seems localization does not work with xCode 6.1 and 8.1 simulator.
Workaround:
Go to "edit schemes" >> "Run" (side bar) >> "Options" tab >> "Application Language"
Select the language you wish to run the app on the simulator.
I got this workaround from Workaround by natanavra
Thanks to him.
However I read on developer forum,that it is working in 6.2 beta version of Xcode. Hope it do.
Maybe you have run the app at some time where the file Localizable.strings already existed but has not been localized yet. If this is the case, this unlocalized file still resides in the resources folder in the application bundle in the simulator (when you build an run a new version of your app in the simulator or in the device, unused files will not be deleted). This can lead to problems.
Try to delete the app completely from the simulator and build an run again.
I have experienced similar issues (IB localization in my case) on device. So general answer would be
Device - Uninstall app and clean project by Shift+CMD+K
Simulator - Go iOS simulator > Reset Content and Settings and clean project by Shift+CMD+K
These problems are really annoying. Along with poor ability to update localized strings is localization one of the biggest drawback of iOS development.
Another problem that could cause localization not work is the encoding of the strings file. Localizable.strings's encoding must be UTF-16. The default encoding of text file in xcode is UTF-8, that cause me spending a whole day to check why the localization not work.
In Xcode 6.0 and later, Localization not work by changing language in Simulator not working.
You have to edit scheme before running your application.
Go to Edit Scheme -> Run -> Options, change language here.
Now, Run Your Application. It will Work.
For more details, check this answer : Changing language on iOS 8.1 simulator does not work
My problem for this was an incorrectly encoded character in the localization file.
Hi I've created my iPhone app for IOS 5.0 with Xcode 4.2. By default it is localized in English.
I would like to make the app appear on the app store with language "French".
From my understanding, I've to remove English language and add the French one, but this is causing some problems to me.
At first, each time I open my app in Xcode, english language is added by default, even if I have removed it previously.
Moreover, if I localize my Storyboard files in French, the file is moved to my fr folder in project, but this causes in "Copy Bundle Resources" a problem with the file that becomes red.
To make it work again, I've to remove the localization from the Storyboard files.
Can you please help me?