ウェブアプリケーションでのRTLサポートの実装
•3 min read 分で読める
WebReact
概要
世界の20カ国以上がアラビア語、ヘブライ語、ペルシャ語、ウルドゥー語など、右から左に読み書きすることをご存知ですか?適切なサポートがないと、これらの言語向けに設計されたウェブアプリケーションは混乱し、読みにくくなる可能性があります。そのため、ウェブアプリケーションを構築する際にはRTL(Right-to-Left)サポートを考慮することが不可欠です。
前提条件
RTLサポートを有効にするには、まずウェブアプリケーションに複数言語サポートを実装する必要があります。国際化(i18n)の基本知識が必要です。
RTLサポートの有効化
HTMLにはRTLの組み込みサポートがあります:
<html dir="rtl" lang="ar">
</html>
RTLが必要な言語の定義
右から左のサポートが必要なすべての言語で構成される配列を作成します:
export const RTLLanguages = ['ur', 'ar', 'he']
urはウルドゥー語arはアラビア語(標準)heはヘブライ語
動的HTML方向
Next.jsでの実装例:
import { useRouter } from "next/router";
import { RTLLanguages } from "constants/languages";
function MyApp({ Component, pageProps }) {
const { locale = "en" } = useRouter();
useEffect(() => {
const dir = RTLLanguages.includes(locale) ? "rtl" : "ltr";
document?.querySelector("html")?.setAttribute("dir", dir);
document?.querySelector("html")?.setAttribute("lang", locale);
}, [locale]);
return <Component {...pageProps} />;
}
TailwindCSSでのスタイリング
TailwindCSS v3にはrtl:とltr:モディファイアでRTL言語の組み込みサポートがあります:
<div class="ltr:ml-4 rtl:mr-4">
両方向に適切なマージンを持つコンテンツ
</div>
ベストプラクティス
RTLサポートを実装する際の考慮事項:
- レイアウトのミラーリング - ナビゲーション、サイドバー、アイコンをミラーリング
- テキスト配置 - テキストを右揃えに
- 方向性アイコン - 矢印と方向性アイコンを反転
- 数字と日付 - RTL言語でも左から右のまま
結論
RTLサポートの実装は、世界中のユーザーにサービスを提供する包括的なウェブアプリケーションを作成するために不可欠です。TailwindCSSとNext.jsを使用すると、実装が簡単で保守可能になります。