Skip to main content

add-locale

Adds a new locale to RunCat365. Use when adding a new language, creating a Strings.{lc}.resx file, registering a CultureInfo, or extending SupportedLanguage.cs with a new entry.

ソース情報

リポジトリ
runcat-dev/RunCat365
ソースの最終更新活動
2026年6月7日 05:35
検出された SKILL.md の言語
英語
スター
10,332
フォーク
848

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
add-locale
description
Adds a new locale to RunCat365. Use when adding a new language, creating a Strings.{lc}.resx file, registering a CultureInfo, or extending SupportedLanguage.cs with a new entry.
argument-hint
<language name or BCP 47 code>
# Add a New Locale to RunCat365 Modify 3 files to add support for `$ARGUMENTS`. French (`fr`) is used as an example. ## Steps ### 1. Create `RunCat365/Properties/Strings.{lc}.resx` Read `RunCat365/Properties/Strings.resx` for all keys and their English values. Use `Strings.es.resx` as the structural template. - File name: `Strings.{lc}.resx` (e.g. `Strings.fr.resx`) - Copy the XML header, schema, and `<resheader>` blocks verbatim from `Strings.es.resx` - Include every key from `Strings.resx` — no more, no less — with each `<value>` translated - Keep all attribute names, XML structure, and `<comment>` content in English; translate only `<value>` text - Verify every key from `Strings.resx` is present in the new file ### 2. Edit `RunCat365/SupportedLanguage.cs` Keep the `SupportedLanguage` enum and every `switch` arm sorted **alphabetically by enum identifier** (e.g. `French` before `German` before `Japanese`). Insert the new language at its alphabetical position in each location below — do not append. Add the language to the `SupportedLanguage` enum: ```csharp enum SupportedLanguage { English, French, Japanese, Spanish, } ``` Add the ISO code to `GetCurrentLanguage()` (arms ordered by enum identifier, so `"fr"` appears before `"ja"` even though the ISO codes aren't themselves alphabetical): ```csharp return culture.TwoLetterISOLanguageName switch { "fr" => SupportedLanguage.French, "ja" => SupportedLanguage.Japanese, "es" => SupportedLanguage.Spanish, _ => SupportedLanguage.English, }; ``` Add the culture to `GetDefaultCultureInfo()`: ```csharp return language switch { SupportedLanguage.French => new CultureInfo("fr-FR"), SupportedLanguage.Japanese => new CultureInfo("ja-JP"), SupportedLanguage.Spanish => new CultureInfo("es-ES"), _ => new CultureInfo("en-US"), }; ``` Add the font to `GetFontName()` — use `"Consolas"` for Latin-script languages: ```csharp return language switch { SupportedLanguage.French => "Consolas", SupportedLanguage.Japanese => "Noto Sans JP", SupportedLanguage.Spanish => "Consolas", _ => "Consolas", }; ``` Add the full-width flag to `IsFullWidth()` — use `false` for Latin-script languages: ```csharp return language switch { SupportedLanguage.French => false, SupportedLanguage.Japanese => true, SupportedLanguage.Spanish => false, _ => false, }; ``` ### 3. Update `README.md` Add the new language to the **Installation** → **Language:** list, preserving the existing alphabetical order by English display name (e.g. `French` between `English (default)` and `German`). Match the existing two-space indentation under the `- Language:` bullet. ## Checklist - [ ] Created `Strings.{lc}.resx` with all keys translated - [ ] Added language to the `SupportedLanguage` enum - [ ] Added ISO code to `GetCurrentLanguage()` - [ ] Added culture to `GetDefaultCultureInfo()` - [ ] Added font to `GetFontName()` - [ ] Added full-width flag to `IsFullWidth()` - [ ] Added the language to the Installation language list in `README.md` - [ ] Built in Visual Studio and verified UI with OS language set to the target language
GitHubで見る