Rav*_*avi 5 iphone xcode localization storyboard ios
我正在开发一个支持两种语言的应用程序,即英语和阿拉伯语。我几乎完成了所有任务,即在应用程序中本地化+处理UI LTR(英语),RTL(阿拉伯语)。
现在,我想在情节提要中查看RTL中的UI预览。默认情况下为LTR。
到目前为止,我所做的是:
+(void)initialize {
NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];
NSArray* languages = [defs objectForKey:@"AppleLanguages"];
NSString *current = [languages objectAtIndex:0];
[self setLanguage:current];
Run Code Online (Sandbox Code Playgroud)
}
+(void)setLanguage:(NSString *)l {
NSLog(@"\n\n\t ***** Hint Lang. selected by user: %@ ****\n\n", l);
NSString *path = [[ NSBundle mainBundle ] pathForResource:l ofType:@"lproj" ];
bundle = [NSBundle bundleWithPath:path];
Run Code Online (Sandbox Code Playgroud)
}
+(NSString *)get:(NSString *)key alter:(NSString *)alternate {
return [bundle localizedStringForKey:key value:alternate table:nil];;
Run Code Online (Sandbox Code Playgroud)
}
用于处理UI LTR或RTL。例如,当用户选择英语时,我将UI设置为
[UIView appearance].semanticContentAttribute = UISemanticContentAttributeForceLeftToRight;
Run Code Online (Sandbox Code Playgroud)
当用户选择阿拉伯语时,我将UI设置为
[UIView appearance].semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;
Run Code Online (Sandbox Code Playgroud)
但是我必须检查所有内容,然后运行应用程序iPhone UI屏幕,无论对于LTR还是RTL都适用。
有什么方法可以让我们在情节提要中以RTL形式查看预览UI(无需在iPhone /模拟器中运行)。任何建议都会很棒!提前致谢!!
我发现了一种在编辑 Storyboard/xib 时快速预览 RTL 布局的有用方法,但仅限于一个视图(如UIView父容器)。这不是一个好方法,但可以节省您一些时间并且不需要运行应用程序。
在编辑器中,您可以选择任何视图,然后在检查器中将Semantic属性更改为Force Right to Left。这将以 RTL 方式预览所选视图的布局。
这只是测试单个容器或控件的快速方法,主要缺点是要在 RTL 中预览整个布局(包括子视图),您需要逐一更改此属性。