Weblate フロントエンド

フロントエンドは、現在 Bootstrap、jQuery、およびいくつかのサード パーティのライブラリを使用して構築されています。

対応ブラウザー

Weblate は、すべての主要なブラウザーとプラットフォームの最新の安定したリリース版に対応しています。

WebKit、Blink、または Gecko の最新版を使用する代替ブラウザーは、直接またはプラットフォームの Web ビュー API を使用しているかどうかにかかわらず、明示的に対応していません。ただし、Weblate は(多くの場合)これらのブラウザーでも正常に表示されて機能するはずです。

古いブラウザーは動作するかもしれませんが、一部の機能は制限されている場合があります。

依存関係の管理

Django プロジェクトの クライアントサードパーティ のライブラリをインストールおよび管理することは手間がかかります。このセクションでは、Webpack を使用して Weblate の クライアント側 で使用するサードパーティのライブラリをインストールおよび管理する方法を提供しています。

前提条件

インストールを続行する前に、次の前提条件を満たしていることを確認してください。

  • Nodejs バージョン 14 以上。

  • yarn パッケージ マネージャーがシステムにインストール済み。

  • cd client を実行。

  • yarn install を実行。

インストール

ライブラリをインストールするためのコマンド:

yarn add <lib-name>

Importing the Library

次に、ライブラリをインポートする 2 つの方法:

  1. プロジェクト全体のライブラリである場合(すべてのページまたはほとんどのページで使用または必要となる場合):
    • src/main.js ファイルにライブラリをインポートする。

    • そして、それをグローバル スコープで宣言します(必要な場合)。

  2. ページ固有のライブラリの場合(ライブラリが特定のページまたはテンプレートで使用されている場合):
    • src/<lib-name>.js という新しいファイル名を作成する。

    • その中にライブラリをインポートする。

    • webpack.config.js:<lib-name>: "src/<lib-name>.js" にエントリーを追加する。

    注意: <lib-name> を実際のサードパーティ ライブラリの名前に置き換えてください。

Building the Library

プロジェクトで使用するライブラリをビルドするための実行コマンド:

yarn build

Including the Library

これでライブラリが構築され、使用できるようになりました。ライブラリを追加する方法:

  1. もし、ライブラリが src/main.js にインポートされている場合、追加の手順は必要ありません(すでに base.html に含まれているため)。

  2. ライブラリが特定のファイル src/<lib-name>.js にインポートされた場合は、 weblate/templates で include タグを使用して、構築された静的 JavaScript ファイルにリンクします。

{% load static %}
<script src="{% static 'js/vendor/<lib-name>.js' %}"></script>

コーディング規約

Weblate は、JavaScript および CSS コードのフォーマットと lint に Biome を使用します。

現地語化

フロントエンドのコードでユーザーに表示するテキストが必要な場合は、ローカライズ可能にする必要があります。ほとんどの場合、テキストを gettext 関数内でラップするだけですが、もっと複雑な機能も利用できます:

document.write(gettext('this is to be translated'));

var object_count = 1 // or 0, or 2, or 3, ...
s = ngettext('literal for the singular case',
        'literal for the plural case', object_count);

fmts = ngettext('There is %s object. Remaining: %s',
        'There are %s objects. Remaining: %s', 11);
s = interpolate(fmts, [11, 20]);
// s is 'There are 11 objects. Remaining: 20'

アイコン

Weblate では現在、マテリアル デザインのアイコンを使用しています。新しいシンボル アイコンをお探しの方は Material Design Icons もしくは Material Design Resources を確認してください。

また、ほとんどのアイコンはパスのスタイルを設定できるよう HTML に埋め込まれるため、SVG のサイズを小さくする scripts/optimize-svg を用意しました。