Skip to content

Complete i18n coverage for shell utility strings#298

Merged
schuyler merged 7 commits into
mainfrom
claude/fix-missing-i18n-strings-An0wL
Feb 18, 2026
Merged

Complete i18n coverage for shell utility strings#298
schuyler merged 7 commits into
mainfrom
claude/fix-missing-i18n-strings-An0wL

Conversation

@schuyler

@schuyler schuyler commented Feb 4, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add shell utility installation strings (Issue Fix shell utility installation on macOS Sonoma #38) to all 25 non-English language files
  • Create complete Localizable.strings files for 6 languages that were missing them (Arabic, Danish, Finnish, Hebrew, Hindi, Ukrainian)
  • Translate all strings properly - no English placeholders remaining
  • Fix translation errors discovered during review

Changes

New complete Localizable.strings files:

  • Arabic (ar), Danish (da), Finnish (fi), Hebrew (he), Hindi (hi), Ukrainian (uk)

Shell utility strings added and translated for:

  • Czech, German, Spanish, Estonian, French, Icelandic, Italian, Japanese, Korean, Norwegian, Dutch, Portuguese-BR, Russian, Slovak, Swedish, Turkish, Simplified Chinese, Traditional Chinese, Danish-DK

Translation fixes:

  • German: "Shell-Erweiterung" (extension) → "Shell-Werkzeug" (tool)
  • Dutch: "Shift Left/Right" was keyboard keys, now correctly refers to text indentation
  • Japanese: "文字列" (string) → "文字" (character) in plural strings
  • Italian: Fixed inconsistent %@ placeholder positions in plural strings
  • Various: Translated "<Not installed>" placeholder in 9 languages

Test plan

  • Verify strings display correctly in each supported language
  • Test shell utility installation/uninstallation messages
  • Check plural string formatting in word/character counts

Related to #38

https://claude.ai/code/session_01NJKvXdPGfcoJSGKSxjbDfv

Adds the 15 new shell utility installation strings (from Issue #38)
to all 20 non-English Localizable.strings files. These strings support
the shell utility installation/uninstallation UI and error messages.

Strings are added with English placeholders to allow the app to
function while proper translations are pending.

Related to #38

https://claude.ai/code/session_01NJKvXdPGfcoJSGKSxjbDfv
Creates full Localizable.strings files for ar (Arabic), da (Danish),
fi (Finnish), he (Hebrew), hi (Hindi), and uk (Ukrainian). These
language directories existed with partial translations (MainMenu.strings,
preference view controllers) but were missing Localizable.strings.

Uses English placeholders to ensure app functionality while proper
translations are pending from contributors.

Related to #38

https://claude.ai/code/session_01NJKvXdPGfcoJSGKSxjbDfv
Replace English placeholder strings with proper translations for the
shell utility installation messages (Issue #38) across all 25 non-English
language files including French, Slovak, Traditional Chinese, Dutch,
Arabic, Danish, Finnish, Hebrew, Hindi, Ukrainian, and others.

Related to #38

https://claude.ai/code/session_01NJKvXdPGfcoJSGKSxjbDfv
Dutch (nl-NL):
- "<Not installed>" now translated to "<Niet geïnstalleerd>"
- "Ordered/Unordered List" fixed (was showing only "Unordered")
- "Shift Left/Right" now refers to text indentation, not keyboard keys

German (de):
- "Shell-Erweiterung" (extension) → "Shell-Werkzeug" (tool)

https://claude.ai/code/session_01NJKvXdPGfcoJSGKSxjbDfv
- Translate "<Not installed>" in: cs, da-DK, et, fr, is, nb-NO, pt-BR, tr, zh-Hans
- Translate WORDS_PLURAL_STRING in: ja, ko-KR, ru-RU
- Translate CHARACTERS_PLURAL_STRING in: ko-KR, ru-RU
- Translate CHARACTERS_NO_SPACES_PLURAL_STRING in: ko-KR, ru-RU, sv, tr

https://claude.ai/code/session_01NJKvXdPGfcoJSGKSxjbDfv
Japanese (ja):
- "文字列" means "string" (text string), not plural of "character"
- Changed to "文字;文字" since Japanese has no grammatical plurals

Italian (it-IT):
- Fixed inconsistent %@ placeholder positions
- Fixed inconsistent capitalization (Carattere vs caratteri)
- Now follows standard "%@ word;%@ words" format

https://claude.ai/code/session_01NJKvXdPGfcoJSGKSxjbDfv
@schuyler schuyler force-pushed the claude/fix-missing-i18n-strings-An0wL branch from a2e512d to f7f8a24 Compare February 8, 2026 21:29
@github-actions

github-actions Bot commented Feb 8, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Report

Current Coverage: 53.98%

Coverage Details (Summary)
Name                                                                                                                                   Coverage            
-------------------------------------------------------------------------------------------------------------------------------------- ------------------- 
MASPreferences.bundle                                                                                                                  0.00% (0/0)         
MacDown 3000.app                                                                                                                       59.36% (7890/13291) 
    /Users/runner/work/macdown3000/macdown3000/MacDown/Code/Preferences/MPHtmlPreferencesViewController.m                              0.00% (0/87)        
        MPPrismDefaultThemeName                                                                                                        0.00% (0/2)         
        -[MPHtmlPreferencesViewController viewIdentifier]                                                                              0.00% (0/3)         
        -[MPHtmlPreferencesViewController toolbarItemImage]                                                                            0.00% (0/3)         
        -[MPHtmlPreferencesViewController toolbarItemLabel]                                                                            0.00% (0/2)         
        -[MPHtmlPreferencesViewController viewWillAppear]                                                                              0.00% (0/4)         
        -[MPHtmlPreferencesViewController changeStylesheet:]                                                                           0.00% (0/7)         
        -[MPHtmlPreferencesViewController changeHighlightingTheme:]                                                                    0.00% (0/7)         
        -[MPHtmlPreferencesViewController invokeStylesheetFunction:]                                                                   0.00% (0/23)        
        -[MPHtmlPreferencesViewController loadStylesheets]                                                                             0.00% (0/13)        
        -[MPHtmlPreferencesViewController loadHighlightingThemes]                                                                      0.00% (0/23)        
    /Users/runner/work/macdown3000/macdown3000/MacDown/Code/Extension/NSColor+HTML.m                                                   94.05% (332/353)    
        +[NSColor(HTML) colorWithHexString:]                                                                                           94.12% (16/17)      
        +[NSColor(HTML) colorWithHTMLName:]                                                                                            89.13% (164/184)    
        __35+[NSColor(HTML) colorWithHTMLName:]_block_invoke                                                                           100.00% (152/152)   
    /Users/runner/work/macdown3000/macdown3000/Dependency/peg-markdown-highlight/HGMarkdownHighlightingStyle.m                         87.69% (57/65)      
        +[HGMarkdownHighlightingStyle colorFromARGBColor:]                                                                             100.00% (6/6)       
        -[HGMarkdownHighlightingStyle initWithType:attributesToAdd:toRemove:fontTraitsToAdd:]                                          88.89% (8/9)        
        -[HGMarkdownHighlightingStyle initWithStyleAttributes:baseFont:]                                                               86.00% (43/50)      
    /Users/runner/work/macdown3000/macdown3000/MacDown/Code/Utility/FileURLInlining.m                                                  22.92% (22/96)      
        +[FileURLInlining inlineFromIterable:]                                                                                         0.00% (0/11)        
        +[FileURLInlining withURL:]                                                                                                    0.00% (0/4)         
        -[FileURLInlining inlineContent]                                                                                               0.00% (0/9)         
        -[FileURLInlining initWithURL:]                                                                                                0.00% (0/7)         
        -[FileURLInlining imageContent]                                                                                                0.00% (0/12)        
        +[FileURLInlining mimeTypeForFilePath:]                                                                                        100.00% (22/22)     
        -[FileURLInlining clippingContent]                                                                                             0.00% (0/4)         
        +[FileURLInlining isTextClippingAtPath:]                                                                                       0.00% (0/12)        
        +[FileURLInlining textContentFromClipping:]                                                                                    0.00% (0/15)        
    /Users/runner/work/macdown3000/macdown3000/MacDown/Code/Extension/hoedown_html_patch.c                                             86.47% (115/133)    
        hoedown_patch_reset_checkbox_index                                                                                             100.00% (3/3)       
        hoedown_patch_get_checkbox_index                                                                                               0.00% (0/3)         
        hoedown_patch_render_blockcode                                                                                                 89.09% (49/55)      
        hoedown_patch_render_listitem                                                                                                  100.00% (44/44)     
        hoedown_patch_render_toc_header                                                                                                67.86% (19/28)      
    /Users/runner/work/macdown3000/macdown3000/MacDown/Code/Application/MPMainController.m                                             42.91% (106/247)    
        MPOpenBundledFile                                                                                                              96.67% (29/30)      
        __MPOpenBundledFile_block_invoke                                                                                               85.71% (6/7)        
        treat                                                                                                                          20.00% (6/30)       
        __treat_block_invoke                                                                                                           0.00% (0/3)         
        -[MPMainController applicationDidFinishLaunching:]                                                                             100.00% (6/6)       
        -[MPMainController openUrlSchemeAppleEvent:withReplyEvent:]                                                                    0.00% (0/45)        
        __59-[MPMainController openUrlSchemeAppleEvent:withReplyEvent:]_block_invoke                                                   0.00% (0/7)         
        -[MPMainController valueForKey:fromQueryItems:]                                                                                0.00% (0/5)         
        -[MPMainController preferences]                                                                                                100.00% (3/3)       
        -[MPMainController preferencesWindowController]                                                                                0.00% (0/18)        

... (2597 more lines truncated)

📊 **Full coverage report available in workflow artifacts**

@schuyler schuyler merged commit 52be7aa into main Feb 18, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants