Skip to content

Latest commit

 

History

History
117 lines (83 loc) · 4.55 KB

README-ja.md

File metadata and controls

117 lines (83 loc) · 4.55 KB
English | 日本語(原文|Original)

🌐 js-i18n.nvim

GitHub Release tests

js-i18n.nvim は、JavaScript の i18n ライブラリをサポートする Neovim プラグインです。

concept.mp4

🚧 ステータス

Warning

このプラグインはまだ開発中であり、開発者の利用ケースに最適化しています。

✨ 機能

  • 翻訳をバーチャルテキストとして表示
  • 翻訳の編集 (コマンド or コードアクション)
  • 翻訳が不足している場合のエラー表示
  • 定義ジャンプ
  • ホバーによる翻訳の表示
  • キーの補完
  • モノレポ のサポート
  • いくつかのライブラリのサポート (i18next, react-i18next, next-intl)

サポートしているライブラリ

i18next-screenshot

next-intl-screenshot

✅ 必須条件

  • Neovim 0.10.0 以上 (0.10.0 未満では動作確認していません)
  • jq 翻訳文言の編集に使用します。

📦 インストール

{
  "nabekou29/js-i18n.nvim",
  dependencies = {
    "neovim/nvim-lspconfig",
    "nvim-treesitter/nvim-treesitter",
    "nvim-lua/plenary.nvim",
  },
  event = { "BufReadPre", "BufNewFile" },
  opts = {}
}

📚 使い方

コマンド

  • :I18nSetLang [lang] - 言語を設定します。設定された言語はバーチャルテキストの表示や定義ジャンプに使用されます。

  • :I18nEditTranslation [lang] - カーソルがある位置の翻訳を編集します。キーにマッチする翻訳がない場合は、新しい翻訳を追加します。
    lang を省略した場合は、現在表示されている言語を使用します。

  • :I18nVirtualTextEnable - バーチャルテキストの表示を有効にします。

  • :I18nVirtualTextDisable - バーチャルテキストの表示を無効にします。

  • :I18nVirtualTextToggle - バーチャルテキストの表示を切り替えます。

  • :I18nDiagnosticEnable - 診断情報の表示を有効にします。

  • :I18nDiagnosticDisable - 診断情報の表示を無効にします。

  • :I18nDiagnosticToggle - 診断情報の表示を切り替えます。

  • :I18nCopyKey - JSON ファイルで実行することで、カーソルがある位置のキーをクリップボードにコピーします。

⚙️ 設定

デフォルトの設定は以下の通りです。 完全な設定の一覧は config.lua を参照してください。

{
  primary_language = {}, -- 優先表示する言語(バーチャルテキストなどの表示に使用する言語の初期設定)
  translation_source = { "**/{locales,messages}/*.json" }, -- 翻訳リソースのパターン
  detect_language = ..., -- 言語を検出する関数。デフォルトではファイル名からヒューリスティックに検出する関数が使用されます。
  key_separator = ".", -- キーのセパレータ
  virt_text = {
    enabled = true, -- バーチャルテキストの表示を有効にする
    format = ..., -- バーチャルテキストのフォーマット関数
    conceal_key = false, -- キーを隠して翻訳のみを表示する
    fallback = false, -- 選択中のバーチャルテキストが表示できない場合に
    max_length = 0, -- バーチャルテキストの最大長。0の場合は無制限。
    max_width = 0, -- バーチャルテキストの最大幅。0の場合は無制限。(`max_length` が優先されます。)
  },
  diagnostic = {
    enabled = true, -- 診断情報の表示を有効にする
    severity = vim.diagnostic.severity.WARN, -- 診断情報の重要度
  },
}

⬆️ ロードマップ

  • ライブラリサポートの強化
    • namespace のサポート