mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-02-05 11:33:15 +01:00
Remove langmenu=none from the MacVim vimrc to enable Vim's menu
translations.
Menu cleanups:
- Remove Emoji character picker menu item as macOS already adds it
automatically to Edit menu. No need to do that ourselves.
- Rename some menus to fit macOS more and so we can use an official
Apple translations (e.g. Select Next Tab renamed to "Show Next Tab").
Also, modify extract-specific-localised-strings.swift for MacVim. This
sets up only the locales we need, and add a new mode to generate Vim
menu translations and can be toggled using a command-line parameter.
Vim menu translations
--------------------
Vim already has menu translations, but need to add translations for
MacVim-specific menus. Add menu translations for MacVim in a new
subfolder. Each locale has two new translation files: one with Apple
official translations extracted using the script, and the other one with
custom translations (they were mostly done by referencing existing
translations, e.g. "About MacVim"). Also added a README to try to make
it clear what's going on.
- Not all menu items are translated yet. There are a couple left (e.g.
"Toggle Full Screen" and "Stay in Front") but for it's good for now,
and we can add those translations in later.
MacVim xib translations
--------------------
Convert MainMenu.xib to Base localization and add per-locale strings
files. The top parts are the manually translated strings (well, mostly
from guessworks with help from Google translte), and the bottom parts
are the Apple official ones coming from the script. This mostly affects
the menu that's shown when no Vim instance is opened, and also the main
app menu called "MacVim". Other menu items when there is a window opened
use the Vim menu translations instead.
Other MacVim GUI items like preference pane are currently not localized
as those would likely need someone to go through and actually manually
translate them, and it would be tricky to keep them up to date if we
make changes, which happens from time to time.
Locales
--------------------
- No MacVim translations (Apple didn't have official translations for
them):
- af_af.latin1
- eo.utf-8
- is_is.utf-8
- sl_si.utf-8
- sr_rs.utf-8
- Added MacVim translations:
- ca_es
- cs_cz
- da
- de_de
- es_es
- fi_fi
- fr_fr
- hu_hu
- it_it
- ja
- ko_kr
- nl_nl
- no_no
- pl_pl
- pt_br
- pt_pt
- ru_ru
- sv_se
- tr_tr
- zh_cn
- zh_tw
Close #776
Language files for Vim: Translated menus The contents of each menu file is a sequence of lines with "menutrans" commands. Read one of the existing files to get an idea of how this works. More information in the on-line help: :help multilang-menus :help :menutrans :help 'langmenu' :help :language The "$VIMRUNTIME/menu.vim" file will search for a menu translation file. This depends on the value of the "v:lang" variable. "menu_" . v:lang . ".vim" When the 'menutrans' option is set, its value will be used instead of v:lang. The file name is always lower case. It is the full name as the ":language" command shows (the LC_MESSAGES value). For example, to use the Big5 (Taiwan) menus on MS-Windows the $LANG will be Chinese(Taiwan)_Taiwan.950 and use the menu translation file: $VIMRUNTIME/lang/menu_chinese(taiwan)_taiwan.950.vim On Unix you should set $LANG, depending on your shell: csh/tcsh: setenv LANG "zh_TW.Big5" sh/bash/ksh: export LANG="zh_TW.Big5" and the menu translation file is: $VIMRUNTIME/lang/menu_zh_tw.big5.vim The menu translation file should set the "did_menu_trans" variable so that Vim will not load another file. AUTOMATIC CONVERSION When Vim was compiled with multi-byte support, conversion between latin1 and UTF-8 will always be possible. Other conversions depend on the iconv library, which is not always available. For UTF-8 menu files which only use latin1 characters, you can rely on Vim doing the conversion. Let the UTF-8 menu file source the latin1 menu file, and put "scriptencoding latin1" in that one. Other conversions may not always be available (e.g., between iso-8859-# and MS-Windows codepages), thus the converted menu file must be available.