本文へスキップ
lurno
記事一覧
ブログ

アラビア語で本当に動く LMS を選ぶ

アラビア語への翻訳と、右から左へのために作られた製品は別物です。表記方向を最後に回すと何が壊れるのか、そしてそれを見つける 1 時間のテスト。

The Lurno teamAugmental1 分で読めます

アラビア語の翻訳が付いた LMS と、右から左へのために作られた LMS は別の製品であり、英語で行われるデモでは、どちらを買おうとしているのか分かりません。翻訳は文字列のファイルです。表記方向は、レイアウト、アイコン、日付の書式、並び順、ドラッグハンドル、PDF レンダラーの性質であって、そのどれにも文字列ファイルは触れません。すべてのベンダーに、アラビア語版のログインをアラビア語で用意させ、誰もデモしない部分を突いてください。

湾岸と北アフリカの学校やアカデミーは、いまや既定で二言語を前提に購入します。学習者と保護者にはアラビア語、システム担当者には英語かフランス語、そしてどちらの側も移植版に感じられないまま両方を担う一つのプラットフォーム。失敗の形は、機能の欠落であることはめったにありません。児童生徒の名前が逆さに印刷される学期の成績表と、静かにシステムを信用しなくなる校長です。

翻訳はファイルです。表記方向はレイアウトです。

翻訳者は文字列ファイルを 2 週間で仕上げられますし、そのレビューはスクリーンショットを見ていく作業です。その仕事は本物ですが、易しいほうの半分です。

表記方向は、左や右と書かれたすべてのルール、どこかを指すすべてのアイコン、コンテナの左端から測るすべての寸法に触れます。最初から変数として扱われていれば、ルート要素が `dir="rtl"` を持ち、スタイルシートは論理プロパティを使います — `margin-left` ではなく `margin-inline-start` — その結果、インターフェースは自ら反転し、画面が追加されても反転したままになります。左と右が千のルールに書き込まれている場合、アラビア語はすべての画面のリファクタリングになります。だからこそ、予定に入っては先送りされるのです。

Lurno

変数としての表記方向。すべての画面が論理的な始端と終端でレイアウトされているため、アラビア語は設定の一つであり、次の機能はリリースされたその日から反転した状態で出ます。

Not this

左端から測るレイアウトにアラビア語の文字列ファイルを流し込み、苦情が来るたびに画面ごとにパッチを当てていくやり方。

右から左(RTL)への対応

翻訳ではありません。垂直軸に沿って反転したインターフェース — ナビゲーション、表、フォームのラベル、進捗バー、ドロワー、フォーカス順序 — に加えて、アラビア語にラテン文字の語や数字が混ざっても崩れない文、その国に合った数字と暦、アラビア語を理解した並べ替えと検索、そしてアラビア語を続け字として描画する文書。表記方向が最初から変数だった製品はこれを備えており、アラビア語が文字列ファイルに追加されただけの製品は備えていません。

アラビア語の翻訳があれば、その LMS はアラビア語に対応していますか

それだけでは対応しているとは言えません。翻訳が与えるのは、左から右へのレイアウトに置かれたアラビア語の単語であり、仕事の半分ほどです。もう半分が表記方向です。反転したインターフェース、正しい向きを指すアイコン、ラテン文字の語や数字を含む文で正しい端に着く句読点、言語ではなく国に合った数字と暦、アラビア語の名前が並ぶとおりに並べ替えと検索がされる名前、そしてアラビア語を続け字として描画する PDF。そのうちどれが今日できているのかを、画面ごとに尋ねてください。

右から左が遅れて来ると何が壊れるか

どれも珍しいものではありません。ありふれた不具合の類型で、アラビア語を後から追加したどの製品でも、だいたいこの順に現れます。

半分しか反転しないレイアウト

ページ本体は反転し、外枠は反転しない。サイドバーは左に残り、ドロワーは反対側の端から滑り出し、進捗バーは左から埋まるため、4 分の 3 まで進んだ学習者がほとんど手つかずに見えます。表のヘッダー行は反転するのにセルは反転せず、すべての値が違う見出しの下に並ぶ — これが最悪の類です。レイアウトではなくデータの問題に見えるからです。それから小さなものが続きます。切り詰められた文字列の反対側に付く省略記号、逆側に出るツールチップ、視線を追わなくなったタブ順序。

逆を向くアイコン

反転すべきアイコンと、してはいけないアイコンがあり、その基準は意味です。コンテンツの中の移動を示すものは反転します。戻ると進むの矢印、次と前のシェブロン、返信、インデント、ツリーを開くキャレット。物体や慣習を描いたものは反転しません。時計は今も時計回りに動き、チェックマークは今もチェックマークで、再生はアラビア語でも左を指しません。中途半端にやるのは、手を付けないより悪い — 右を指す戻る矢印が、右を指す次へ矢印の隣にあると、対として読めません。

二つの方向に走る文

LMS の中の現実のアラビア語の文で、純粋にアラビア語だけのものはほとんどありません。コース番号、バージョン番号、ファイル名、点数、英語の製品名が入ります。それぞれの連なりがどこに置かれるかは Unicode の双方向アルゴリズムが決めます。適切にマークアップされたテキストではうまく働き、開発者が繋ぎ合わせた文字列ではうまく働きません。症状は見分けがつきます。いちばん左に来る句点、閉じ括弧が句を開いてしまう括弧の入れ替わり、並びが崩れたバージョン番号。

直し方は巧妙さではなく構造の問題です。プレースホルダーを一つ持つ翻訳文字列を一つにし、アルゴリズムが一つの塊として扱うように値を分離します。

an Arabic sentence with one Latin value inside it

  concatenated   part1 + fileName + "."
                 → value and full stop land on the wrong side,
                   and only for some values

  interpolated   t("upload.done", { file })     one string, one placeholder
  isolated       <bdi>{{file}}</bdi>            or unicode-bidi: isolate

  where to look  learner names, file names, course codes, scores —
                 anything dropped into a translated sentence

数字、日付、そして週

アラビア語は一つのロケールではありません。エジプトと湾岸の多くは東アラビア数字(٠١٢٣٤)を書き、モロッコ、アルジェリア、チュニジアはこの文が使っている数字を書きます。ですから `ar` ロケールを一つしか持たないプラットフォームは、どこかで間違っています — そしてそれは、保護者が電話口で読み上げる成績に現れます。サウジアラビアの機関では、同じ帳票の中でグレゴリオ暦の横にヒジュラ暦の日付が必要になることがよくあります。勤務週は国ごとの設定です。アラブ首長国連邦は 2022 年に公共部門を土曜・日曜の週末へ移し、サウジアラビアとエジプトは金曜・土曜のままです。最も厳しい試験はラマダーンです。1 か月のあいだ授業日が短くなり、予定されたリマインダーがすべてそれに合わせて動かなければならないからです。

並べ替えと検索

コードポイント順に並べたクラス名簿は、アルファベット順に並んでいません。アリフの異体字(ا أ إ آ)は離れて並ぶため、أحمد と احمد は同じ名簿の別々の半分に落ちます。名前の末尾のター・マルブータ(ة)とハー(ه)は、キーボードによって互換的に打たれ、ヤー(ي)とアリフ・マクスーラ(ى)も同じです。検索にも同じ正規化が要ります。احمد と打った学籍担当者が أحمد を見つけられるように — そうでなければ職員は検索窓が壊れていると判断し、表計算ソフトに戻ります。さらに、アラビア語の名前の多くは、本人の名、父の名、祖父の名、家族名の連なりであり、入力欄が二つのフォームはそれを黙って切り落とします。

ドラッグできるもの全部

コースの中でモジュールを所定の位置へドラッグすること、ダッシュボードでカードを動かすことは、x 座標の算術です。右から左では符号が反転し、コンテナの左端からの距離でドロップ位置を求めるライブラリは、反対側の端に項目を落とします。ブラウザーは歴史的に、右から左のコンテナにおける `scrollLeft` の符号について見解が分かれていたため、横方向のグリッドが一つのブラウザーでだけ違う場所へスクロールすることがあります。そして左矢印キーは、いまや項目を前へ動かすはずです。ベンダーがこれを正しく作れたかどうかは、アラビア語話者がその製品で実際にコースを組み立てたことがあるかどうかを教えてくれます — スクリーンショットでは見えません。

PDF と修了証

これは最後に、そして最も公に壊れます。成果物が建物の外へ出ていくからです。アラビア語は続け字です。文字は隣り合う文字によって異なる字形を取り、ラームに続くアリフは一つの合字になります。それを描くには、アラビア語のグリフを含むフォント、位置ごとに正しい字形を選ぶシェーピングエンジン、そして配置の前に行う双方向の並べ替えが要ります。保存順に一文字ずつ描くパイプラインは、あの典型的な結果を出します — 名前が、切り離された文字で、逆順に並ぶ。アラビア語を読む人には即座に分かり、購買委員会の誰にも分かりません。修了証にはもう一層あります。ラテン文字の名前に合わせた大きさの氏名欄と、証明書自体はそうでないのに左から右で描画される検証ページです。

PDF でアラビア語のテキストが逆さになったり切り離されたりするのはなぜですか

レンダラーがテキストを整形するのではなく、文字を描いているからです。アラビア語の文字は隣り合う文字に応じて字形が変わり、いくつかの組み合わせは一つの合字になります。ですから正しい出力には三つが必要です。アラビア語のグリフを含むフォント、文字ごとに正しい文脈依存の字形を選ぶシェーピングエンジン、そしてグリフを配置する前に適用される双方向の並べ替えです。保存順に一文字ずつ置くパイプラインは、後ろの二つを飛ばしています。これはインターフェースではなく文書パイプラインの性質であり、だからこそ画面上ではアラビア語が正しく見えるのに、使い物にならない修了証が出てくることがあるのです。

学校が使う言葉は、ベンダーが選ぶものではありません

教員、保護者、クラスは、決まった用語のように見えます。実際にはその土地の語彙であり、言語によるのと同じくらい、国・カリキュラム・分野によって変わります。

  • 保護者。 湾岸の多くの地域では、児童生徒に責任を負う成人は ولي الأمر という法的な言い回しで呼ばれ、学校はそれを譲りません。同じ市にあるイギリス式カリキュラムの学校は parent と言います。
  • クラス。 ある制度では学年集団、別の制度では時間割上の組(شعبة)、アメリカ式カリキュラムの学校ではホームルーム、研修事業者ではコホート。
  • 教員。 معلم、مدرس、أستاذ は、語感も職位の重みも異なります。研修事業者は trainer と trainee と言います。モロッコのフランス式の学校は、同じ人物について、フランス語側では enseignant、アラビア語側では別の語を使います。

これらは二つの軸に沿って同時に変わります — 言語によって、そして組織によって — が、翻訳ファイルが扱えるのは前者だけです。キーごとにアラビア語の単語が一つ、ベンダーの翻訳者が選んだもので、そのリリースの全員に同一です。ですから学校が parent ではなく guardian にしてほしいと言ったとき、文字列ファイルの製品には三つの答えしかなく、どれも悪い。全員について変える、一顧客のためにロケールファイルを分岐させる、あるいは断る。

代わりに、用語を設定として求めてください。ロールとグループを表す名詞ごとに、組織単位のラベルを、言語ごとに独立に設定し、その語が現れるすべての場所に適用する。ナビゲーションのラベルは易しいほうです。浅い実装の見分け方は、メニューは guardian と言っているのに、通知メール、レポートの見出し、書き出した PDF がまだ parent と言っていることです。

LMS は、国によって教員や保護者に別の言葉を使えますか

用語が翻訳ではなく設定であるときにかぎり可能です。翻訳ファイルは、そのリリースの全顧客に対してキーごとにアラビア語の単語を一つ持つので、同じプラットフォーム上の二つの学校がそこから別々の語彙を持つことはできません。その土地の用語には、ロールとグループを表す名詞ごとの組織単位の設定が必要で、言語ごとに別々に保持され、インターフェース、通知、レポート、文書の全体に適用されます。確かめるには、用語を一つ変えてから、メールと PDF の中で古い語を探しに行ってください。

1 時間で実行できるテスト

そのプラットフォームがアラビア語に対応しているかを尋ねないでください。全員がはいと答え、全員が別のことを意味しています。実際のコンテンツと実際の名前が入ったアラビア語のテナントへのログインを求めて、これを実行してください。

  1. アラビア語に切り替えて再読み込みします。外枠まで全体が反転しますか、それともページの中央だけですか。
  2. フォームを開きます。ラベル、必須項目の印、検証メッセージ、そして枠に収まらない長さの文字列を確かめます。
  3. ラテン文字の語か数字を含む文を探します。句読点は正しい端にありますか。
  4. アラビア語の名前の一覧を並べ替えます。أ で始まる名前と ا で始まる名前は隣り合いますか。次に、ハムザなしで打った名前を検索します。
  5. 戸籍上の名前が 4 つの部分からなる学習者を登録し、フォームが何を残すか見ます。
  6. コースの中でモジュールを新しい位置へドラッグします。次に同じことをキーボードで行います。
  7. アラビア語の名前を持つ学習者の修了証を生成し、PDF をスマートフォンで開き、続けてその検証ページを開きます。
  8. 用語を一つ変え — parent を guardian に — 古い語がどこに生き残っているかを探します。
  9. その打ち合わせにいなかったアラビア語話者の同僚にログインを渡し、助けなしで 20 分作業するのを見ます。

ベンダーは右から左への対応を後から追加できますか

できます。そして聞こえるより大きな仕事です。すべての画面でレイアウトのルールを見直し、方向を持つアイコンをすべて棚卸しし、翻訳文字列に差し込まれる値をすべて分離し、PDF がアラビア語を正しく整形するように文書パイプラインを変える。ベンダーがやり遂げることはあります。重要なのは日程と定義です。今日どの画面が反転しているのか、新しい機能は反転した状態で出るのか後からパッチが当たるのか、そして PDF について対応とは何を意味するのかを尋ねてください。リリース時期の示されない約束は、努力するという約束です。

当社の立ち位置

当社はこの種のプラットフォームを作っているので、この節はそのつもりで読んでください。Lurno は 4 つの製品言語 — 英語、アラビア語、フランス語、イタリア語 — で提供され、アラビア語では右から左に完全に対応します。文字列だけでなく、インターフェースが反転します。これは主張ではなく事実です。主張のほうは、それを — そして他社のものも — 機能表ではなく上の 1 時間で確かめるべきだ、ということです。

二言語のグループは、同じ日に二つの問題にぶつかります。表記方向と、独自性です。アラビア語で教える学校と英語で教える学校を運営するグループは、それぞれがそれ自身らしく見えることを望みます — 自校のロゴ、色、ログインページ、ドメイン — が、それは言語の設定ではなくホワイトラベルのブランディングです。一つのプラットフォームが複数の学校を担うときに両者がどう噛み合うかは、学校グループのページにまとめてあります。学習者の名前を載せた修了証が建物の外へ出ていくのであれば、署名の前にアラビア語での文書パイプラインについて尋ねてください。

厳しくする理由は美観ではありません。アラビア語で半分しか動かないプラットフォームは、全員をシステム担当者の言語へ押し戻し、そのために買われたはずの学習者と保護者は、それを開かなくなります。その失敗は静かで、どの報告書にも届くまでに 1 学期かかり、どんな機能一覧も予測しません。