I’m wondering if there are established best practices around using the lingo macro and the $:/language/*
internationalization technique for user wikis, in my case for a plugin/extension mechanism.
I have an external way to internationalize the main content, but I’m not happy with my current approach for internationalizing templates, procedures, functions, and the like. I was thinking of adopting something similar to how the core is internationalized, adding tiddlers like
title: $:/language/plugins/MyName/MyPlugin/Chapter
Chapter
for English
and
title: $:/language/plugins/MyName/MyPlugin/Chapter
Capítulo
for Spanish
I don’t have to worry about the language loading mechanism that the core uses. My version would simply have the language tiddlers overlay the default ones.
But I am worried about name-spacing. I haven’t seen any description of conventions here. The core uses 16 basic tiddlers, plus 39 namespaces, to hold slightly over 1000 language tiddlers.1 Would it make sense that I simply claim the $:/language/plugins
namespace for this? That would mean it’s not available for the core. I think the core would likely use $:/language/Plugin
if it ever needed something like this. But I don’t want to step on toes.
Would that be reasonable? Is there any objection to my starting a convention that $:/language/plugin/MyName/MyPlugin/*
is to be used for plugin-specific language translation tiddlers?
Pinging @jeremyruston, @pmario, @saqimtiaz, @EricShulman
1 These:
Language Tiddlers
$:/language/ConfirmAction | $:/language/DropMessage |
$:/language/ConfirmCancelTiddler | $:/language/LazyLoadingWarning |
$:/language/ConfirmDeleteTiddler | $:/language/LoginToTiddlySpace |
$:/language/ConfirmDeleteTiddlers | $:/language/No |
$:/language/ConfirmEditShadowTiddler | $:/language/OfficialPluginLibrary |
$:/language/ConfirmOverwriteTiddler | $:/language/PluginReloadWarning |
$:/language/Count | $:/language/UnsavedChangesWarning |
$:/language/DefaultNewTiddlerTitle | $:/language/Yes |
Language Tiddler Namespaces
$:/language//* | $:/language/Error/* | $:/language/RecentChanges/* |
$:/language/AboveStory/* | $:/language/Exporters/* | $:/language/RelativeDate/* |
$:/language/BinaryWarning/* | $:/language/Filters/* | $:/language/Search/* |
$:/language/Buttons/* | $:/language/Help/* | $:/language/Shortcuts/* |
$:/language/ClassicWarning/* | $:/language/Import/* | $:/language/SideBar/* |
$:/language/CloseAll/* | $:/language/InternalJavaScriptError/* | $:/language/Snippets/* |
$:/language/ColourPicker/* | $:/language/LayoutSwitcher/* | $:/language/Switcher/* |
$:/language/ControlPanel/* | $:/language/Manager/* | $:/language/SystemTiddler/* |
$:/language/Date/* | $:/language/MissingTiddler/* | $:/language/SystemTiddlers/* |
$:/language/Diffs/* | $:/language/Modals/* | $:/language/TagManager/* |
$:/language/Docs/* | $:/language/Notifications/* | $:/language/ThemeTweaks/* |
$:/language/EditTemplate/* | $:/language/OfficialPluginLibrary/* | $:/language/Tiddler/* |
$:/language/Encryption/* | $:/language/PageTemplate/* | $:/language/TiddlerInfo/* |