msg と defineMessage
msg と defineMessage は、すぐに翻訳せず、メッセージ記述子だけを定義します。
msg は defineMessage の別名であり、機能は同一です。
メッセージを保存したい場合、エクスポートしたい場合、複数ファイルで再利用したい場合、あるいは別のレンダラーやランタイム境界であとから翻訳したい場合に適しています。
フレームワークに依存しない 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>---import { defineMessage, msg, t } from "lingui-for-astro/macro";
const welcome = msg`Welcome back`;
const submitLabel = defineMessage({ id: "form.submit", message: "Submit",});---
<p>{t(welcome)}</p>import { defineMessage, msg, t } from "@lingui/core/macro";
const welcome = msg`Welcome back`;
const submitLabel = defineMessage({ id: "form.submit", message: "Submit",});
const label = t(welcome);向いている場面
セクションタイトル “向いている場面”- 翻訳は定義時ではなく、あとで行いたい
- 同じ記述子を複数ファイルや複数レンダラーで再利用する
- 素の TypeScript / JavaScript を公式 Lingui Core の書き方に近づけたい
推奨ルール
セクションタイトル “推奨ルール”素の .js と .ts ファイルでは、公式の @lingui/core/macro パッケージからインポートしてください。
フレームワーク固有パッケージはフレームワーク構文向けであり、汎用的な記述子定義のためのものではありません。