Skip to content

Add complete localizations for Russian, Arabic, Hindi, Ukrainian, and Hebrew preferences#212

Merged
schuyler merged 4 commits intomainfrom
claude/resolve-issue-174-016xq35thSf2QfvznDYQxg3D
Dec 13, 2025
Merged

Add complete localizations for Russian, Arabic, Hindi, Ukrainian, and Hebrew preferences#212
schuyler merged 4 commits intomainfrom
claude/resolve-issue-174-016xq35thSf2QfvznDYQxg3D

Conversation

@schuyler
Copy link
Copy Markdown
Owner

Summary

Completes preference view controller localizations for five languages, adding comprehensive international support:

  • Russian (ru-RU): 213 lines across 5 files
  • Arabic (ar): 213 lines across 5 files (RTL language)
  • Hindi (hi): 213 lines across 5 files
  • Ukrainian (uk): 213 lines across 5 files
  • Hebrew (he): 213 lines across 5 files (RTL language)

Total: 1,065 new lines of translations across 25 localization files

Related Issues

Related to #174 (Russian localization)
Related to #175 (Arabic localization)

Changes

Russian Localization (#174)

  • Updated MPMarkdownPreferencesViewController.strings (added 13 missing entries)
  • Created MPTerminalPreferencesViewController.strings
  • Created MPGeneralPreferencesViewController.strings
  • Created MPHtmlPreferencesViewController.strings
  • Created MPEditorPreferencesViewController.strings

Arabic Localization (#175)

  • Created all 5 preference view controller .strings files
  • Arabic files were already referenced in Xcode project

Hindi, Ukrainian, Hebrew Localizations

  • Created complete preference view controller localizations for all three languages
  • Added PBXFileReference entries and variant group associations

Xcode Project Updates

  • Added 19 new PBXFileReference entries (4 for Russian, 15 for Hindi/Ukrainian/Hebrew)
  • Updated 5 PBXVariantGroup sections to include all new localizations
  • Arabic references already existed in project

Translation Approach

All translations:

  • Use formal/polite forms appropriate for UI text
  • Preserve technical terms in English (Markdown, Smartypants, Mermaid, Graphviz, Jekyll, TeX)
  • Follow the same structure as existing localizations (Japanese, Korean, etc.)
  • Use UTF-8 encoding
  • Match ObjectIDs exactly from Base.lproj

Code Review

Chico review status: ✅ APPROVED (Russian/Arabic implementation)
No critical issues found. Same approach applied to Hindi, Ukrainian, Hebrew.

Manual Testing Plan

N/A - Localization data files only. CI will validate build succeeds with new translations.

…ns for preferences

This commit completes localization support for Russian (ru-RU) and Arabic (ar)
preference view controllers, addressing two incomplete internationalization issues.

Changes:
- Russian (ru-RU) localization:
  * Completed MPMarkdownPreferencesViewController.strings (added 13 missing entries)
  * Created MPTerminalPreferencesViewController.strings (18 lines, 6 entries)
  * Created MPGeneralPreferencesViewController.strings (27 lines, 9 entries)
  * Created MPHtmlPreferencesViewController.strings (63 lines, 21 entries)
  * Created MPEditorPreferencesViewController.strings (63 lines, 21 entries)
  * Total: 213 lines across 5 files

- Arabic (ar) localization:
  * Created MPMarkdownPreferencesViewController.strings (42 lines, 14 entries)
  * Created MPTerminalPreferencesViewController.strings (18 lines, 6 entries)
  * Created MPGeneralPreferencesViewController.strings (27 lines, 9 entries)
  * Created MPHtmlPreferencesViewController.strings (63 lines, 21 entries)
  * Created MPEditorPreferencesViewController.strings (63 lines, 21 entries)
  * Total: 213 lines across 5 files

- Xcode project updates:
  * Added PBXFileReference entries for 4 new Russian .strings files
  * Added Russian references to 4 preference view controller variant groups
  * Arabic files were already referenced in project (files now created)

All translations use formal/polite forms appropriate for UI text. Technical terms
(Markdown, Smartypants, Mermaid, Graphviz, Jekyll, TeX) preserved in English as
proper nouns across both localizations.

Related to #174
Related to #175
Extends international support by adding three additional complete localizations
for preference view controllers.

Changes:
- Hindi (hi) localization:
  * Created MPMarkdownPreferencesViewController.strings (42 lines, 14 entries)
  * Created MPTerminalPreferencesViewController.strings (18 lines, 6 entries)
  * Created MPGeneralPreferencesViewController.strings (27 lines, 9 entries)
  * Created MPHtmlPreferencesViewController.strings (63 lines, 21 entries)
  * Created MPEditorPreferencesViewController.strings (63 lines, 21 entries)
  * Total: 213 lines across 5 files

- Ukrainian (uk) localization:
  * Created MPMarkdownPreferencesViewController.strings (42 lines, 14 entries)
  * Created MPTerminalPreferencesViewController.strings (18 lines, 6 entries)
  * Created MPGeneralPreferencesViewController.strings (27 lines, 9 entries)
  * Created MPHtmlPreferencesViewController.strings (63 lines, 21 entries)
  * Created MPEditorPreferencesViewController.strings (63 lines, 21 entries)
  * Total: 213 lines across 5 files

- Hebrew (he) localization:
  * Created MPMarkdownPreferencesViewController.strings (42 lines, 14 entries)
  * Created MPTerminalPreferencesViewController.strings (18 lines, 6 entries)
  * Created MPGeneralPreferencesViewController.strings (27 lines, 9 entries)
  * Created MPHtmlPreferencesViewController.strings (63 lines, 21 entries)
  * Created MPEditorPreferencesViewController.strings (63 lines, 21 entries)
  * Total: 213 lines across 5 files

- Xcode project updates:
  * Added 15 new PBXFileReference entries (5 per language)
  * Added references to all 5 preference view controller variant groups
  * Total: 639 new lines of translations

All translations follow the same conventions as Russian/Arabic localizations,
using formal forms appropriate for UI text and preserving technical terms in
English (Markdown, Smartypants, Mermaid, Graphviz, Jekyll, TeX).

Related to #174
Related to #175
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Dec 13, 2025

Code Coverage Report

Current Coverage: 42.21%

Coverage Details (Summary)
Name                                                                                                                                   Coverage            
-------------------------------------------------------------------------------------------------------------------------------------- ------------------- 
MASPreferences.bundle                                                                                                                  0.00% (0/0)         
MacDown 3000.app                                                                                                                       53.95% (6706/12429) 
    /Users/runner/work/macdown3000/macdown3000/MacDown/Code/Extension/DOMNode+Text.m                                                   0.00% (0/94)        
        -[NSString(WordCount) numberOfWords]                                                                                           0.00% (0/11)        
        __36-[NSString(WordCount) numberOfWords]_block_invoke                                                                          0.00% (0/3)         
        -[NSString(WordCount) lengthWithoutNewlines]                                                                                   0.00% (0/11)        
        __44-[NSString(WordCount) lengthWithoutNewlines]_block_invoke                                                                  0.00% (0/3)         
        -[NSString(WordCount) lengthWithoutWhitespacesAndNewlines]                                                                     0.00% (0/11)        
        __58-[NSString(WordCount) lengthWithoutWhitespacesAndNewlines]_block_invoke                                                    0.00% (0/3)         
        MPGetChildrenNodetextCount                                                                                                     0.00% (0/6)         
        MPGetNodeTextCount                                                                                                             0.00% (0/38)        
        -[DOMNode(Text) textCount]                                                                                                     0.00% (0/8)         
    /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/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/Extension/hoedown_html_patch.c                                             73.64% (95/129)     
        hoedown_patch_render_blockcode                                                                                                 89.09% (49/55)      
        hoedown_patch_render_listitem                                                                                                  100.00% (46/46)     
        hoedown_patch_render_toc_header                                                                                                0.00% (0/28)        
    /Users/runner/work/macdown3000/macdown3000/MacDown/Code/Application/MPMainController.m                                             40.76% (97/238)     
        MPOpenBundledFile                                                                                                              95.24% (20/21)      
        __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)        
        -[MPMainController showPreferencesWindow:]                                                                                     0.00% (0/2)         
        -[MPMainController showHelp:]                                                                                                  100.00% (3/3)       
        -[MPMainController showContributing:]                                                                                          100.00% (3/3)       
        -[MPMainController init]                                                                                                       90.91% (10/11)      
        -[MPMainController applicationShouldOpenUntitledFile:]                                                                         80.00% (4/5)        
        -[MPMainController applicationDidBecomeActive:]                                                                                100.00% (5/5)       

... (2113 more lines truncated)

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

Corrected file paths for Hindi, Ukrainian, and Hebrew Terminal
preference localization files. These were missing the "Localization/"
prefix, causing build failures with "file cannot be found" errors.

Related to #174 #175
Removed "Localization/" prefix from Terminal preference file paths
for ru-RU, hi, uk, and he. The MPTerminalPreferencesViewController
variant group already has "Localization" as its base path, so file
references should be relative (e.g., "hi.lproj/..." not
"Localization/hi.lproj/...").

This fixes build errors where Xcode was looking for files at paths
like "Localization/Localization/hi.lproj/...".

Related to #174 #175
@schuyler schuyler merged commit 5b703cd into main Dec 13, 2025
4 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