English

hypersig_i18n クレート

コンパイラが検査する翻訳

1 つの文はその訳を 1 つの値にまとめて持つので、どれかの訳が欠けた文はコンパイルエラーになります。言語は各ページのルートの一部で、/ はブラウザが求める言語のページへリダイレクトします。

訳の欠けはコンパイルエラー

文は言語ごとに 1 つのフィールドを持つ構造体なので、日本語の訳がない文や、文を書かずに足した言語はコンパイルエラーになります。

言語はルートの一部

言語はページのルートの最初のセグメントなので、別の言語のページへのリンクも、ほかのリンクと同じく検査されます。

マクロを使わない

文はただの構造体のリテラルで、言語はただの enum です。欠けているものは、コンパイラの通常の検査が見つけます。

訳のない文

文の日本語を書き忘れると、その行がコンパイルエラーになります。言語の宣言のしかたは 概要 で説明します。

// error[E0063]: missing field `ja` in initializer of `ByLang<_>`
let title = ByLang { en: "Settings" };

hypersig の一部

このサイトもこのクレートで翻訳しています。どのページも同じ Rust の関数から言語ごとに 1 回ずつレンダリングしています。