2017-07-12 9 views
0

私は非常に最小のUIを持つOSXアプリケーションを開発しています。内部化/ローカリゼーションのために、私は第三者図書館を使ってすべてのテキストを適切な言語に置き換えました(私は[NSLocale preferredLanguages]を使用して言語を検出します)。問題は私のNSAlertは、システム言語をアラビア語に切り替えるときでも、その内容(テキスト、ボタンのレイアウトを含む)を常に左から右の方向に表示することです。私のOSXアプリはRTL言語を検出できません

私の研究からは、NSAlertが自動的に方向を正しく切り替えるように見えるはずです(ただし、明示的にはそうではありません)。私はこの

NSUserInterfaceLayoutDirection direction = [NSApplication sharedApplication].userInterfaceLayoutDirection; 

direction NSUserInterfaceLayoutDirection::NSUserInterfaceLayoutDirectionLeftToRightに等しい、(でもアラビア語に設定されているシステムの言語の場合)、常に希望をも確認してください。私はこれが問題だと思っていますが、これに対処する方法はよく分かりません。 NSApplicationのは正しいレイアウト方向を知っていることを確認してください

  • 誰もがどのように知っていますか?

または

  • (特にRLF言語での)正しい方向に必ずNSAlertディスプレイを作りますか?

注:

  • 私は、この質問を見てNSAlert for right to left languages (reversed layout)が、答えは私にとって全く役に立ちません。私もここに、このガイドを見て

  • :言語のサポートを追加するためには、このガイドのように見えるので、それはまだ、助けにはならない

https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPInternational/Introduction/Introduction.html#//apple_ref/doc/uid/10000171i-CH1-SW1

とは、私が持っていることが必要ですxibまたはストーリーボードファイル。私のプロジェクトは、これらのいずれかを持っていません。

ありがとうございます。

+1

に左に戻すためにあなたをいアプリサポートアラビア語? – Willeke

+0

ああ - 私のアプリが個々の言語をサポートするようにしなければならないことさえ分かりません。サードパーティのライブラリを使用して、すべてのテキストを適切な言語に置き換えました(私は[NSLocale preferredLanguages]を使用して言語を検出しました)。だから、私のアプリでは、アラビア語にシステムを切り替えると、テキストはアラビア語になりますが、方向は変わりません。サポートする言語を指定するにはどうすればよいですか? – trungdinhtrong

+0

「答えは私にとって全く役に立たない」とはどういう意味ですか?受け入れられた解決策では、カスタムアラートクラスを作成する必要があると言われています。だからこそ、あなたは何をしましたか? –

答えて

2

アラビア語をサポートするには、アプリ内のリソースフォルダに空のar-001.lprojフォルダがあります。

あなたは言語ごとにフォルダを追加したくない場合は、あなたが

[[NSUserDefaults standardUserDefaults] setObject:@"YES" forKey:@"AppleTextDirection"]; 
[[NSUserDefaults standardUserDefaults] setObject:@"YES" forKey:@"NSForceRightToLeftWritingDirection"]; 

を呼び出すことにより、方向を書いて右から左に強制することができ、右

[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleTextDirection"]; 
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"NSForceRightToLeftWritingDirection"]; 
+0

私は2番目のアプローチを試みました - 魅力のように動作します!ありがとう、ウィレケ。 – trungdinhtrong

関連する問題