Minecraftサーバー向けベトナム語スタイルガイド
目標: プレイヤーが目にするすべてのテキストが、親しみやすい管理者が話しかけているように読めること — 行政文書のようでも、Google翻訳のようでも、無礼で失礼でもありません。ゲーム用語はMinecraft公式ベトナム語版に準拠し、プレイヤーがすぐに認識できるようにします。
このスキルは、以下のファイルを修正または新規作成するときに使用します: messages.yml、vi.yml、lang/*.yml、messages_vi.properties、configアイテム(display-name, lore)、GUI/メニュー、ホログラム、スコアボード、タブ、NPCダイアログ、ブロードキャスト/アナウンス、チュートリアル、タイトル/アクションバー。
新しいプラグインを作成するときにも使用します(Java/Kotlin、Paper/Spigot/Velocity...): コード内およびプラグインに付属するデフォルトの言語ファイル内でプレイヤーが目にするすべての文字列は、最初からこのスキルに従う必要があります — セクション8を参照してください。
1. 手順
- 修正する前にファイル全体を読みます。 以下を特定します:
- カラー構文: レガシー
&a/§a、16進数&#RRGGBB、またはMiniMessage<green>、<gradient:...>。ファイルで使用されている構文をそのまま維持し、混在させないでください。 - プレースホルダー:
%player%、{0}、{player}、<player>、%vault_eco_balance%... — リストを記録します。 - 現在使用されている呼称と口調(通常は「bạn(あなた)」)。ファイルに一貫した独自の口調がある場合は、それに従います。
- プロジェクトに用語ファイルがある場合(例:
docs/thuat-ngu.md、glossary.md)、それを読んで遵守します — 他のすべてのソースよりも優先されます。
- カラー構文: レガシー
- 用語を確認します ファイルに出現するブロック/アイテム/モブ/エフェクト/エンチャント/ステータスの名前については、セクション2に従います。
- 各行を分類します セクション4に従って(エラー、成功、情報、指示、NPCダイアログ、通知、アイテム名、lore、GUIボタン、タイトル/アクションバー)。
- 書き直します セクション3 + セクション4に従って。問題ない行はそのまま維持します — 変更するために変更しないでください。
- 技術的なチェックを行います(セクション6)、ファイルを検証します。
- レポートを作成します セクション7に従って。
2. 参考資料 — 用語は参考にしても、文体は参考にしない
既存のベトナム語化は用語の統一に非常に役立ちますが、その文は英語に忠実に翻訳されすぎていることがよくあります(「残高が不足しています」「テレポート要求の処理がキャンセルされました」)。したがって: 単語は借用しても、文は借用しないでください。
単語を選択する際の優先順位:
- プロジェクトの用語ファイル(存在する場合)。
- Minecraft vanilla
vi_vn— ブロック、アイテム、モブ、エフェクト、エンチャント、ステータス、ゲームモード、難易度の名前の標準ソース。クライアントをベトナム語に設定しているプレイヤーは、ゲーム内でこれらの単語を目にするので、loreやメッセージはそれらと一致している必要があります。- 次で確認:
https://raw.githubusercontent.com/InventivetalentDev/minecraft-assets/<バージョン>/assets/minecraft/lang/vi_vn.json(例:<バージョン>=1.21)。ファイルは大きいので、すべてを読むのではなく、キー(item.minecraft.diamond_sword、effect.minecraft.speed、enchantment.minecraft.sharpness、attribute.name.generic.attack_damage、gameMode.creative...)で検索します。 - 確信が持てない場合は、vanillaの名前を記憶で推測しないでください — ファイルを確認するか、レポートに「確認が必要」とマークしてください。
- 次で確認:
- EssentialsX
messages_vi.properties— 一般的なプラグインの概念(テレポート、ニックネーム、リスポーンポイント、メール...)の単語を参考にします:https://raw.githubusercontent.com/EssentialsX/Essentials/2.x/Essentials/src/main/resources/messages_vi.properties。 - ベトナム人ゲーマーが実際に話す方法(セクション3)。
照合済み用語
vanilla vi_vn(1.21)の単語 — lore/ステータスでそのまま使用:
| 英語 | vi_vn |
|---|---|
| Armor | Giáp |
| Armor Toughness | Độ bền áo giáp |
| Attack Damage | Sức tấn công |
| Attack Speed | Tốc độ tấn công |
| Max Health | Sinh lực tối đa |
| Movement Speed | Tốc độ |
| Knockback Resistance | Kháng đẩy lùi |
| Luck | Vận may |
| Mining Efficiency | Hiệu quả đào |
| Anvil | Cái đe |
| Ancient Debris | Mảnh vỡ cổ đại |
| Nether, The End | 「Nether」、「The End」のまま |
EssentialsX vi(概念参照):
| 概念 | EssentialsX vi | チャット/GUIでの提案 |
|---|---|---|
| teleport | Dịch chuyển | 「dịch chuyển」または「tp」(クイックチャット) |
| enchantment | Phù phép | Phù phép |
| inventory | Túi | Túi đồ |
| item | Vật phẩm | GUI/タイトルでは「Vật phẩm」、チャット文では「đồ」 |
| nickname | Biệt danh | Biệt danh |
| spawn point / bed | Điểm hồi sinh | Điểm hồi sinh |
| gamemode | Chế độ chơi (Sinh tồn, Sáng tạo, Phiêu lưu) | そのまま |
| ender chest | Rương ender | Rương ender |
| kit | Bộ dụng cụ | 「kit」 — コマンド/kitと同じ、ゲーマーはそう呼ぶことに慣れている |
| experience | Kinh nghiệm | Kinh nghiệm / EXP |
| offline | Ngoại tuyến | 「offline」 |
| server | Máy chủ | 「server」 |
一般規則: ゲーム内に存在するものの名前(ブロック、アイテム、モブ、エフェクト、エンチャント、ステータス)→ vanilla vi_vn に従う。 ゲーマーが英語で呼ぶサーバー/プラグインの概念(kit、warp、home、rank、spawn、server、online/offline、AFK、PvP、top)→ 英語のままにする。** 選択したら、サーバー全体で1つの単語のみを使用します。
単語は借用しても文は修正する — EssentialsX viの例
| 元のベトナム語化 | 書き直し |
|---|---|
| Bạn không có quyền để dùng lệnh này. | Bạn chưa có quyền dùng lệnh này. |
| Số dư hợp lệ không đủ. | Bạn không đủ tiền. |
| Bạn không thể thanh toán cho người chơi ngoại tuyến. | {0} đang offline, không chuyển tiền được. |
| Bạn không thể nhập lệnh đó trong {0}. | Đợi {0} nữa mới dùng lại được. |
| Dịch chuyển sẽ bắt đầu trong {0}. Đừng di chuyển. | Đứng yên {0}, sắp dịch chuyển... |
| Việc xử lí yêu cầu dịch chuyển đã bị hủy. | Đã hủy dịch chuyển vì bạn di chuyển. |
| Người chơi {0} chưa bao giờ vào máy chủ. | {0} chưa vào server lần nào. |
| Công cụ này còn {0} lần sử dụng nữa. | Công cụ này còn dùng được {0} lần. |
| Bạn không thể dùng bộ dụng cụ này trong {0}. | {0} nữa mới nhận lại kit này được. |
| Túi của bạn đã đầy. | Túi đồ đầy rồi, dọn bớt nhé. |
| Essentials đã được tải lại {0}. | Đã reload Essentials {0}. |
プラグインの messages_vi.properties ファイルを書き直すときは、.properties のエスケープ(\:、\!、MessageFormat の '')を維持します。
3. 文体の原則
自然で、簡潔で、何をすべきか明確に。
- デフォルトの呼称: システムはプレイヤーを「bạn(あなた)」と呼びます。何も呼ばないか、必要な場合は「server(サーバー)」とします。「Quý khách(お客様)」「Người chơi(プレイヤー)」を直接呼びかけるのに使用しないでください。明確な性格を持つNPCのダイアログを除き、「mày/tao(お前/俺)」は使用しないでください。
- まず簡潔に、後で詳細に。 冗長なフレーズを削除します: 「để có thể(できるように)」「thực hiện(実行する)」「tiến hành(進める)」「việc...(...すること)」「đã được ... thành công(...されました)」「hiện tại(現在)」「một cách(方法)」「hợp lệ(有効な)」。
- 受動態を能動態に: 「đã bị hủy(キャンセルされました)」→「đã hủy(キャンセルしました)」、「đã được tải lại(リロードされました)」→「đã reload(リロードしました)」。
- 何をすべきかを伝え、単にエラーを伝えないでください。 「Sai cú pháp(構文エラー)」→「Dùng: /pay <tên> <số tiền>(使用例: /pay <名前> <金額>)」。理由があれば理由を述べてください。
- 漢越語や機械翻訳の単語よりも、純粋なベトナム語/ゲーマーがよく使う単語を優先します: 「sử dụng(使用する)」→「dùng(使う)」、「hoàn tất(完了する)」→「xong(終わり)」、「không hợp lệ(無効)」→「không đúng(正しくない)」/ 正しいものを指定、「trực tuyến/ngoại tuyến(オンライン/オフライン)」→「online/offline」、「máy chủ(サーバー)」→「server」。(例外: ゲーム内のものの名前は、vanilla
vi_vn(セクション2)に従います。) - 助詞(nhé、nha、đó、rồi、nè、thôi): 文を柔らかくするために使用しますが、1文につき最大1つの助詞とし、すべての文に使用する必要はありません。重大な警告/BAN/キックには助詞を使用しないでください。
- 感嘆符は控えめに: 最大1つの
!、嬉しい知らせやイベントのみ。!!!は使用しないでください。 - ベトナム語の大文字化: 文頭と固有名詞のみを大文字にします。アイテム名/イベント名/GUIタイトルは、各単語を大文字にします。
[VIP]、MỚIのような短いラベルを除き、すべて大文字(ALL CAPS)は避けてください。 - 無礼にならない: 悪態をついたり、プレイヤーを皮肉ったり、teencode(「ko」、「dc」、「j」、「z」)やわかりにくい略語を使用したりしないでください。
- 一貫性: 同じ概念にはサーバー全体で1つの単語を使用します(「xu(コイン)」を選択した場合は、「coin」や「tiền(お金)」を混在させないでください)。
- 単数/複数: ベトナム語には複数形はありません —
day/daysのようなキーは同じように翻訳されます(「ngày」)。
修正が必要な「機械的な表現」の兆候
| 機械的な表現 | より自然な表現 |
|---|---|
| Vui lòng ...(お願いします...) | (削除するか、勧誘の文に変更: 「... nhé」) |
| ... đã được thực hiện thành công.(...正常に実行されました。) | Đã ... / ... xong rồi.(...しました。/...終わりました。) |
| Việc ... đã bị hủy.(...することはキャンセルされました。) | Đã hủy ... (kèm lý do)(...をキャンセルしました(理由を添えて)) |
| Đã xảy ra lỗi. Vui lòng thử lại sau.(エラーが発生しました。後でもう一度お試しください。) | Có lỗi rồi, thử lại sau chút nhé. Vẫn lỗi thì báo admin.(エラーです。後でもう一度試してみてください。それでもエラーならadminに報告してください。) |
| Người chơi được chỉ định không tồn tại.(指定されたプレイヤーは存在しません。) | Không tìm thấy người chơi %player%.(プレイヤー %player% が見つかりません。) |
| Lỗi: Đầu vào không hợp lệ. / Số không hợp lệ.(エラー: 無効な入力です。/ 無効な数字です。) | Nhập số thôi, ví dụ: 10(数字を入力してください。例: 10) |
| Cần phải là một số khác không.(ゼロ以外の数値である必要があります。) | Số lượng phải lớn hơn 0.(数量は0より大きくなければなりません。) |
| Thanh Kiếm Của Lửa(火の剣) | Kiếm Lửa / Hỏa Kiếm(火の剣 / 火炎剣) |
4. テキストの種類別
エラー / 拒否 — 簡潔で、落ち着いて、修正方法を示します。赤/オレンジ色。
Bạn phải chờ %time% giây trước khi có thể sử dụng lại.→Từ từ đã, %time%s nữa mới dùng lại được.
成功 — 簡潔に確認し、具体的な結果を含めます。
Giao dịch đã được hoàn tất thành công!→Đã chuyển %amount% xu cho %target%.
情報 / 状態 — 情報を直接伝えます。
Người chơi %player% hiện tại không trực tuyến.→%player% đang offline.
指示 / チュートリアル — ステップごとに、文頭は動詞、各行に1つのアイデア、具体的なコマンドを示します。
Để có thể mở khóa tính năng này, bạn cần phải đạt được cấp độ 10.→Lên cấp 10 để mở khóa.- 複数のステップ:
1. Gõ /is create để tạo đảo/2. Chặt cây, làm bàn chế tạo/3. Gõ /is help nếu bí
NPCダイアログ — キャラクターに応じた個性を持たせ、役割に合った呼称を使用します(「ta – ngươi(我-汝)」、「tôi – cậu(私-君)」、「chú – cháu(おじさん-君)」)が、わかりやすく、各発言は最大2行のチャットとします。キャラクターは一貫して同じ口調を保ちます。
Xin chào người chơi. Tôi có một nhiệm vụ dành cho bạn.→Ê, cậu kia! Rảnh không? Tôi đang cần người giúp một chuyện.
アナウンス / ブロードキャスト — 冒頭にフックがあり、何が – いつ – どこで – 何をするかを明確に示します。1~3行。
Sự kiện Boss Thế Giới sẽ bắt đầu sau 5 phút. Hãy chuẩn bị.→5 phút nữa Boss Thế Giới xuất hiện! Gõ /warp boss, rủ team đi cùng.
アイテム名 — 1~4語で、イメージを喚起し、「Của(の)」は使用しません。レア/伝説のアイテムには漢越語の使用が許可されます(Hỏa Long Kiếm、Băng Tâm Giáp)が、無意味に組み合わせないでください。基本的なアイテム/バニラバリアントは、vanillaの vi_vn 名に従います。各単語を大文字にします。
Lore — 各行は表示で約35文字以内。推奨順序:
- 1~2行のフレーバーテキスト(灰色、斜体) — 簡潔で、心に響くもの。
- 空行。
- 簡潔なステータス。vanillaのステータス名を使用:
+10% Sức tấn công、+2 Giáp、+15% Tốc độ。 - 空行 + 使用方法:
Chuột phải để dùng。 - 最後にレアリティ。
GUIボタン / メニュータイトル — 1~3語: Mua、Bán hết、Quay lại、Trang sau、Xác nhận。ボタンのloreは結果を説明します: Click để mua 1 cái / Shift-click: mua 64。
タイトル / サブタイトル / アクションバー — 非常に簡潔に(タイトルは約20文字以内、サブタイトル/アクションバーは約40文字以内)。
クエスト進行度 — テンプレート「Còn {n} ... cần ...」: Còn 5 khối cần phá、Còn 3 con cừu cần xén lông。
5. やりすぎない
- すべての文をジョークやミームにしないでください — サーバーは依然として明確である必要があります。
- 「若者言葉化」しないでください(「bro」、「ngon lành cành đào」...) — ファイルがすでにその口調を使用している場合を除きます。
- ファイルがまだ使用していない場合は、絵文字/特殊文字を追加しないでください。使用する場合は、リソースパックのフォントで表示可能か確認してください。
- 元の意味を変えたり、情報(数値、条件、コマンド)を省略したりしないでください。
- コマンド名、コマンドパラメータ、実際のワールド/warp名を「ベトナム語化」しないでください。
- プレイヤーが再入力する必要がある文字列(例: BetonQuestの
password:プレフィックス)には注意してください: 声調記号付きのベトナム語に翻訳すると、プレイヤーは声調記号を入力する必要があります — ユーザーが決定できるようにマークしてください。
6. 技術チェック(必須)
- キーは変更せず、値のみを変更します。リスト構造を維持します(loreがリストなら、リストのまま)。
- プレースホルダーとカラー/フォーマットタグは100%そのまま維持します。
@[legacy]、@[minimessage]のようなプレフィックスも含みます。文中でプレースホルダーの位置を変更することはできますが、名前を変更したり削除したりすることはできません。 - 文の順序を変更する場合は、プレースホルダーの後ろに色タグを再度配置します(例:
&e%player% &7đã vào server; MiniMessage:<secondary>{0}<primary> ...)。 - YAML:
&、%、{、<、[、*、!、@で始まる文字列、または:/#を含む文字列は引用符で囲む必要があります。一重引用符内では、'は''と記述します。 .properties(EssentialsX、LuckPerms...):\:、\!、および文字列が MessageFormat{0}を使用する場合の''を維持します。- プラグインが必要とする場合は、
\nと改行を元のバージョンと同じに維持します。 configVersionのような設定行には触れないでください。- ファイルは UTF-8 BOMなし で保存し、ベトナム語は適切な声調記号を付け、Unicodeは正規化形式NFCを使用します。
- 修正後にYAMLを検証します:
python -c "import yaml,sys; yaml.safe_load(open(sys.argv[1],encoding='utf-8'))" <ファイル>。 - 正規表現
%[^%\s]+%|\{[^}]+\}|<[^>]+>|&[0-9a-fk-or]|&#[0-9a-fA-F]{6}|@\[[a-z]+\]を使用して、新旧のバージョン間でキーとプレースホルダーのセットをキーごとに比較します。 - 元のバージョンに既存のエラー(例: 2つのコマンド説明が逆になっている)を見つけた場合は、意味が通るように修正し、レポートに明記します。
7. レポート形式
Đã sửa 23/80 dòng trong messages.yml (57 dòng giữ nguyên vì đã ổn).
| Key | Trước | Sau |
|---|---|---|
| economy.not-enough | Bạn không đủ số dư để thực hiện giao dịch này. | Bạn không đủ tiền (cần %price%). |
Thuật ngữ đã tra vanilla vi_vn: <key> → "<từ>"
Cần bạn xác nhận:
- `quest.npc-3`: không rõ NPC này là ai — đang giữ giọng trung tính.
8. 新しいプラグインを作成する場合
新しいプラグインのテキストを最初から正しく記述しておけば、後で各行を修正する必要がなくなります。プレイヤーが目にするすべての文字列にセクション2~6を適用し、さらに以下のルールを追加します。
テキストをコードから分離する
- プレイヤーが目にする文字列を
sendMessage、Component.text、タイトル、GUI、lore... にハードコードしないでください。 すべての文字列は言語ファイル(例:src/main/resources/lang/vi.yml)と、キーを検索するラッパークラス(Messages.get("economy.not-enough", ...))を経由します。 - ベトナム語をデフォルト言語とします。多言語対応が必要な場合は、同じキーセットを持つ
en.ymlを追加します。 - デフォルトの言語ファイルは、初回実行時にプラグインディレクトリにコピーされ(
saveResource)、プラグインが更新された場合は、管理者が修正したテキストを上書きせずに、不足している新しいキーのみを追加します。 - プレフィックス(
[MyraMC])は個別のキーとして保持し、プレースホルダー<prefix>を介して挿入します — 各メッセージにプレフィックスを繰り返さないでください。
キーとプレースホルダーの設定
- キーは機能グループごとに、
nhom.tinh-huong(グループ.状況)の形式にします:economy.pay.success、economy.pay.not-enough、teleport.cancelled-moved、gui.shop.title。 - 名前付きプレースホルダーを使用し、位置には依存しません:
<player>、<amount>(MiniMessage)または{player}—{0}、{1}は使用しません。ベトナム語の文は英語とは語順が異なることが多く、名前付きプレースホルダーは翻訳者/編集者が混乱するのを防ぎます。 - コード内で文字列を連結して文を構成しないでください(
"Bạn nhận " + amount + " " + item)。常に言語ファイルにプレースホルダーを含む完全な文を配置します。言語ごとに語順が異なるためです。 - 各キーは、特定の状況に対する完全な文です。複数の言語で再利用できるように、文の断片を再利用しないでください。
- 例:
- 良い:
economy.pay.success: "Đã chuyển <amount> xu cho <player>." economy.pay.not-enough: "Bạn không đủ tiền. Cần <amount> xu." economy.pay.self: "Không thể tự chuyển tiền cho mình." - 悪い:
コード内:economy.pay.success: "Đã chuyển " economy.pay.amount: "{0} xu cho {1}.""Đã chuyển " + amount + " " + item + " cho " + player
- 良い:
これらのルールに従うことで、プラグインはベトナム語プレイヤーにとって自然で親しみやすいものになり、翻訳やカスタマイズも容易になります。