コンテンツにスキップ

msg と defineMessage

msgdefineMessage は、すぐに翻訳せず、メッセージ記述子だけを定義します。 msgdefineMessage の別名であり、機能は同一です。

メッセージを保存したい場合、エクスポートしたい場合、複数ファイルで再利用したい場合、あるいは別のレンダラーやランタイム境界であとから翻訳したい場合に適しています。

フレームワークに依存しない Lingui の意味論については、公式の msg / defineMessage リファレンス を参照してください。

ソース
<script lang="ts">
  import { defineMessage, msg, t } from "lingui-for-svelte/macro";

  const submitLabel = defineMessage({
    id: "form.submit",
    message: "Submit",
  });
  let welcome = $derived(msg`Welcome back, ${name}`);
</script>

<p class="mb-2">
  {$t(welcome)}
</p>

<button
  type="button"
  class="rounded bg-blue-500 px-4 py-2 text-white enabled:hover:bg-blue-600"
>
  {$t(submitLabel)}
</button>
結果

Welcome back, Lingui

ロケール
名前
<script lang="ts">
import { defineMessage, msg, t } from "lingui-for-svelte/macro";
const welcome = msg`Welcome back`;
const submitLabel = defineMessage({
id: "form.submit",
message: "Submit",
});
</script>
<p>{$t(welcome)}</p>
  • 翻訳は定義時ではなく、あとで行いたい
  • 同じ記述子を複数ファイルや複数レンダラーで再利用する
  • 素の TypeScript / JavaScript を公式 Lingui Core の書き方に近づけたい

素の .js.ts ファイルでは、公式の @lingui/core/macro パッケージからインポートしてください。 フレームワーク固有パッケージはフレームワーク構文向けであり、汎用的な記述子定義のためのものではありません。