--- build/jam/HaikuImage | 15 +++++++------- src/data/keymaps/Jamfile | 36 +++++++++++++++++++++++++++++++++ src/preferences/keymap/Jamfile | 4 ++++ src/preferences/keymap/KeymapWindow.cpp | 4 +++- 4 files changed, 51 insertions(+), 8 deletions(-) diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage index 479fc94..d2d3fd7 100644 --- a/build/jam/HaikuImage +++ b/build/jam/HaikuImage @@ -515,13 +515,14 @@ AddFilesToHaikuImage system data Canna dic canna : $(cannaDicCanna) ; AddDirectoryToHaikuImage system data Canna dic group ; AddDirectoryToHaikuImage system data Canna dic user ; -local keymapFiles = [ Glob [ FDirName $(HAIKU_TOP) src data keymaps ] - : *.keymap ] ; -keymapFiles = $(keymapFiles:BG=keymap) ; -AddFilesToHaikuImage system data Keymaps : $(keymapFiles) ; -AddSymlinkToHaikuImage system data Keymaps : Swedish : Finnish ; -AddSymlinkToHaikuImage system data Keymaps : Slovene : Croatian ; -AddSymlinkToHaikuImage system data Keymaps : US-International : Brazilian ; +# keymaps +AddFilesToHaikuImage system data Keymaps : $(HAIKU_KEYMAP_FILES) ; +local keymapAlias ; +for keymapAlias in $(HAIKU_KEYMAP_ALIASES) { + local aliasedTo = [ on $(keymapAlias) return $(HAIKU_KEYMAP_FILE) ] ; + AddSymlinkToHaikuImage system data Keymaps : $(aliasedTo:BSM) + : $(keymapAlias:BSM) ; +} # Copy keyboard layout files to the image one-by-one. local keyboardLayoutsDir diff --git a/src/data/keymaps/Jamfile b/src/data/keymaps/Jamfile index ee802fb..758564b 100644 --- a/src/data/keymaps/Jamfile +++ b/src/data/keymaps/Jamfile @@ -25,6 +25,36 @@ actions MkKeymapComp1 $(2[1]) -o "$(1)" -c "$(2[2-])" ; } + +rule AddKeymapAlias alias : keymap +{ + alias = $(alias:G=keymap) ; + HAIKU_KEYMAP_FILE on $(alias) = $(keymap:G=keymap) ; + HAIKU_KEYMAP_ALIASES += $(alias) ; +} + + +rule GenerateKeymapLocalizationHeader keymaps +{ + local keymapNames = $(HAIKU_KEYMAP_FILES:BSM) $(HAIKU_KEYMAP_ALIASES:BSM) ; + local header = <keymap-locale>KeymapNames.h ; + MakeLocateCommonPlatform $(header) ; + Always $(header) ; + HAIKU_KEYMAP_NAMES on $(header) = $(keymapNames) ; + GenerateKeymapLocalizationHeader1 $(header) ; + LocalClean clean : $(header) ; +} + + +actions GenerateKeymapLocalizationHeader1 +{ + $(RM) $(1) + for name in "$(HAIKU_KEYMAP_NAMES)" ; do + echo "B_TRANSLATE_MARK_VOID(\"$name\")" >> $(1) + done +} + + local keymapFiles = [ GLOB $(SUBDIR) : *.keymap ] ; # generate the binary file for the keymap files @@ -33,5 +63,11 @@ for keymapFile in [ FGristFiles $(keymapFiles:D=) ] { local binary = $(keymapFile:BG=keymap) ; MkKeymapComp $(binary) : $(keymapFile) ; Package haiku-inputkit-cvs : $(binary) : boot home config settings Keymap ; + HAIKU_KEYMAP_FILES += $(binary) ; } +AddKeymapAlias Finnish : Swedish ; +AddKeymapAlias Croatian : Slovene ; +AddKeymapAlias Brazilian : US-International ; + +GenerateKeymapLocalizationHeader ; diff --git a/src/preferences/keymap/Jamfile b/src/preferences/keymap/Jamfile index 173d67f..d29b179 100644 --- a/src/preferences/keymap/Jamfile +++ b/src/preferences/keymap/Jamfile @@ -1,9 +1,13 @@ SubDir HAIKU_TOP src preferences keymap ; +UseHeaders [ FDirName $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) data keymaps ] ; + SetSubDirSupportedPlatformsBeOSCompatible ; UsePrivateHeaders interface shared ; +Includes [ FGristFiles KeymapWindow.cpp ] : <keymap-locale>KeymapNames.h ; + Preference Keymap : KeyboardLayout.cpp KeyboardLayoutView.cpp diff --git a/src/preferences/keymap/KeymapWindow.cpp b/src/preferences/keymap/KeymapWindow.cpp index de078ef..fda665f 100644 --- a/src/preferences/keymap/KeymapWindow.cpp +++ b/src/preferences/keymap/KeymapWindow.cpp @@ -37,6 +37,7 @@ #include "KeyboardLayoutView.h" #include "KeymapApplication.h" #include "KeymapListItem.h" +#include "KeymapNames.h" #undef B_TRANSLATION_CONTEXT @@ -827,7 +828,8 @@ KeymapWindow::_FillSystemMaps() if (directory.SetTo(path.Path()) == B_OK) { while (directory.GetNextRef(&ref) == B_OK) { - fSystemListView->AddItem(new KeymapListItem(ref)); + fSystemListView->AddItem( + new KeymapListItem(ref, B_TRANSLATE_NOCOLLECT(ref.name))); } } } -- 1.8.1.4 --knika-dfb55890-f73b-409e-9258-12b029ad5ebd--