I18nManager
I18nManagerモジュールは、アラビア語、ヘブライ語などの言語の右から左(RTL)レイアウトをサポートするためのユーティリティを提供します。RTLの動作を制御し、現在のレイアウト方向を確認するためのメソッドを提供します。
例
RTLに基づいて位置とアニメーションを変更する
他のFlexbox要素に合わせて要素を絶対配置すると、RTL言語では位置がずれることがあります。isRTLを使用することで、配置やアニメーションを調整できます。
開発中
リファレンス
プロパティ
isRTL
typescript
static isRTL: boolean;
アプリが現在RTLレイアウトモードであるかどうかを示すブール値。
isRTLの値は、次のロジックによって決定されます。
forceRTLがtrueの場合、isRTLはtrueを返します。allowRTLがfalseの場合、isRTLはfalseを返します。- それ以外の場合、次の条件が満たされると
isRTLはtrueになります。- iOS
- デバイスでユーザーが設定した言語がRTL言語である。
- アプリケーションで定義されたローカライゼーションに、ユーザーが選択した言語が含まれている(Xcodeプロジェクトファイル(
knownRegions = (...))で定義されているとおり)。
- Android
- デバイスでユーザーが設定した言語がRTL言語である。
- アプリケーションの
AndroidManifest.xmlで、<application>要素にandroid:supportsRTL="true"が定義されている。
- iOS
doLeftAndRightSwapInRTL
typescript
static doLeftAndRightSwapInRTL: boolean;
RTLモードで左右のスタイルプロパティを自動的に入れ替えるかどうかを示すブール値。有効にすると、RTLレイアウトでは左が右になり、右が左になります。
Methods
allowRTL()
typescript
static allowRTL: (allowRTL: boolean) => void;
アプリケーションのRTLレイアウトサポートを有効または無効にします。
パラメータ
allowRTL(ブール値): RTLレイアウトを許可するかどうか。
重要な注意事項
- 変更はすぐにではなく、次回のアプリケーション起動時に有効になります。
- この設定はアプリの再起動後も保持されます。
forceRTL()
typescript
static forceRTL: (forced: boolean) => void;
デバイスの言語設定に関係なく、アプリにRTLレイアウトの使用を強制します。これは主に、開発中にRTLレイアウトをテストする場合に役立ちます。
本番アプリでRTLを強制することは避けてください。これは、完全にアプリを再起動しないと有効にならず、ユーザーエクスペリエンスが低下するためです。
パラメータ
forced(ブール値): RTLレイアウトを強制するかどうか。
重要な注意事項
- 変更はすぐにではなく、次回のアプリケーション起動時に完全に有効になります。
- この設定はアプリの再起動後も保持されます。
- 開発とテストのみを目的としています。本番環境では、RTLを完全に許可しないか、適切に処理する必要があります(
isRTLを参照)。
swapLeftAndRightInRTL()
typescript
static swapLeftAndRightInRTL: (swapLeftAndRight: boolean) => void;
RTLモードで左右のスタイルプロパティを入れ替えます。有効にすると、RTLレイアウトでは左が右になり、右が左になります。isRTLの値には影響しません。