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.

Datos de origen

Repositorio
runcat-dev/RunCat365
Última actividad en el origen
7 de junio de 2026 a las 05:35
Idioma detectado de SKILL.md
inglés
Estrellas
10.332
Forks
848

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
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
Ver en GitHub