# node: msg
URL: https://generaltranslation.com/ja/docs/node/api/strings/msg.mdx
---
title: msg
description: msg() 文字列関数の API リファレンス
---
## 概要
`msg` 関数は、文字列を翻訳用にマークしてエンコードする関数です。
```js
const encodedString = msg('Hello, world!');
```
エンコードされた文字列は、翻訳を取得するために [`getMessages`](/docs/node/api/get-messages) 関数に渡す必要があります。
**エンコード:**
`msg` は入力文字列をエンコードするため、アプリケーション内で直接使うことはできません。
元の文字列に戻したい場合は、[`decodeMsg`](#decodemsg) を使ってデコードする必要があります。
注: `msg` を文字列だけで、オプションなしで呼び出した場合でも、返されるのは元の文字列ではなくエンコードされた文字列です。
元の内容を取得するには `decodeMsg` を使用してください。
## デコード [#decodemsg]
元の文字列を取得するには、[`decodeMsg`](#decodemsg) でデコードする必要があります
```js
import { msg, decodeMsg } from 'gt-node';
const encodedString = msg('Hello, world!');
const decodedString = decodeMsg(encodedString);
console.log(decodedString); // "Hello, world!"
```
## リファレンス
### パラメータ
| 名前 | 型 | 説明 |
| ---------- | ----------------------------------------------------------------------------- | ----------------------------- |
| `content` | `string` | エンコードする文字列の内容。 |
| `options?` | [`InlineTranslationOptions`](/docs/next/api/types/inline-translation-options) | `msg` の動作をカスタマイズするための翻訳オプション。 |
### 戻り値
エンコードされた文字列。変数の補間がある場合は、その値に置き換えられます。
***
## 挙動
### 本番環境
CD プロセスでは、`msg` 関数内の内容はすべて、アプリケーションのデプロイ前に翻訳されます。
これにより、すべてのロケールで高速に読み込めますが、翻訳できるのはビルド時に判明している内容に限られます。
翻訳の生成後は、設定に応じて (1) CDN に保存されるか、(2) アプリのビルド出力に保存されます。
そこから、翻訳済みのコンテンツがユーザーに配信されます。
翻訳が見つからない場合は、元の内容にフォールバックします。
[こちらのデプロイガイド](/docs/next/tutorials/quickdeploy)に従ってください。
### 開発
開発中は、`msg` 関数がコンテンツを on-demand で翻訳します。
これは、アプリが各言語でどのように表示されるかをすばやく確認したいプロトタイピング時に便利です。
この動作を有効にするには、環境変数に Dev API キーを追加してください。
開発中に on-demand 翻訳を行うと、遅延が発生します。
本番ビルドでは、コンテンツを明示的に on-demand で翻訳している場合を除き、この遅延は発生しません。
***
## 例
### 基本的な使い方
`msg` を使うと、文字列を翻訳対象としてマークできます。
```js copy
import { msg, getMessages } from 'gt-node';
const greeting = msg('Hello, world!');
const m = await getMessages();
const translated = m(greeting);
console.log(translated); // "Hello, world!" (翻訳済み)
```
注: "Hello, world!" はユーザーの使用言語に翻訳されます。
### 変数を使用する [#variables]
辞書の翻訳文に変数を渡せます。
```js copy
import { msg, getMessages } from 'gt-node';
const greeting = msg('Hello, {name}!', { name: 'Alice' });
const m = await getMessages();
const translated = m(greeting);
console.log(translated); // "Hello, Alice!" (翻訳済み)
```
注: "Alice" は変数のため、ユーザーが選択した言語には翻訳されません。
### ICU メッセージ形式の使用
`gt-node` は ICU メッセージ形式をサポートしているため、変数の書式設定も行えます。
```js copy
import { msg, getMessages } from 'gt-node';
const encodedString = msg('There are {count, plural, =0 {no items} =1 {one item} other {{count} items}} in the cart', { count: 10 });
const m = await getMessages();
const translated = m(encodedString);
console.log(translated);
```
ICU メッセージ形式は、変数の書式設定を柔軟に行える強力な方法です。
詳しくは、[ICU メッセージ形式のドキュメント](https://unicode-org.github.io/icu/userguide/format_parse/messages/)を参照してください。
***
## 注記
* `msg` 関数は、文字列を翻訳対象としてマークするための関数です。
* `msg` を使った文字列の翻訳は、runtime ではなく、ビルド時に行われます (development 環境を除く) 。
## 次のステップ
* runtime で翻訳済みの文字列を取得する方法については、[`getMessages`](/docs/node/api/get-messages)を参照してください。