Abdalrahman Shatou
Abdalrahman Shatou

Reputation: 4748

iOS - Could I change the localizable.strings content during runtime?

I am loading the translation through a JSON file every time I launch the application. Could I parse that JSON, clean it up and place it in the localizable.strings file?

If not, will I be able to load localization from localizable file created in the Documents directory?

Upvotes: 6

Views: 5344

Answers (2)

Daij-Djan
Daij-Djan

Reputation: 50099

no the first as you can't edit app resources after deployment

you can however tell NSBundle to use a different localizeFile.. or rather download the json and put it in a NSBundle

put the localizable into:

<APP/DOCUMENTS>/<APPNAME>.bundle/<LANGUAGE_CODE>.lproj/Localizable.strings

init a new cocoa bundle

NSBundle *b = [NSBundle bundleWithPath:@"<APP/DOCUMENTS>/<APPNAME>.bundle/"];

then just use this on the bundle:

 - (NSString *)localizedStringForKey:(NSString *)key value:(NSString *)value table:(NSString *)tableName 

e.g.

[b localizedStringForKey:@"HIHO" value:nil table:nil];

Upvotes: 6

Stephen Darlington
Stephen Darlington

Reputation: 52565

You can't edit anything in your application bundle, so no to your first question. (Note that you might be able to do it in the Simulator but it certainly won't work on a device.)

Not sure about the second question.

Upvotes: -1

Related Questions