Skip to content

caml/snake/kebab case option of locale messages hierarcy name for squeezer / infuser #5

@kazupon

Description

@kazupon

API

type Option = {
  casing?: 'caml' | 'snake' | 'kebab'
}

sqeeze (basePath: string, files: SFCFileInfo[], option = { casing: 'caml' }: : Option): LocaleMessages
infuse (basePath: string, sources: SFCFileInfo[], messages: LocaleMessages, option = { casing: 'caml' }: : Option): SFCFileInfo[]

CLI

vue-i18n-locale-message squeeze --target=./src --casing='kebab'
vue-i18n-locale-message infuse --target=./src --message=./message.json --casing='kebab'

--casing is able to commit, default is 'caml'

if --casing is kebab, should be genrated the following:

{
  "ja": { // for `ja` locale`
    "app": { // src/App.vue
      "title": "アプリケーション",
      "lang": "言語切り替え"
    },
    "components": { // src/components
      "modal": { // src/components/Modal.vue
        "ok": "OK",
        "cancel": "キャンセル"
      }
    },
    "pages": { // src/pages
      "login": { // src/pages/Login.vue
        "id": "ユーザーID",
        "password": "パスワード",
        "confirm": "パスワードの確認入力",
        "button": "ログイン"
      }
    }
  },
  "en": { // for `en` locale
    "app": { // src/App.vue
      "title": "Application",
      "lang": "Change languages"
    },
    "components": { // src/components
      "modal": { // src/components/Modal.vue
        "ok": "OK",
        "cancel": "Cancel"
      },
      "nest": { // src/components/nest
        "ranking-table": { // src/components/nest/RankingTable.vue
          "headers": {
            "rank": "Rank",
            "name": "Name",
            "score": "Score"
          }
        }
      }
    }
  }
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions