diff --git a/examples/api_version.lua b/examples/api_version.lua index f2aaff7..1f86f6b 100644 --- a/examples/api_version.lua +++ b/examples/api_version.lua @@ -23,6 +23,14 @@ USAGE ]] local dt = require "darktable" +-- translation facilities + +local gettext = dt.gettext.gettext + +local function _(msg) + return gettext(msg) +end + -- script_manager integration to allow a script to be removed -- without restarting darktable local function destroy() @@ -30,7 +38,8 @@ local function destroy() end local result = dt.configuration.api_version_string -dt.print_error("API Version: "..result) +dt.print_log("API Version: " .. result) +dt.print(string.format(_("API Version: %s"), result)) -- set the destroy routine so that script_manager can call it when -- it's time to destroy the script and then return the data to diff --git a/examples/darkroom_demo.lua b/examples/darkroom_demo.lua index b4edcc5..6ca9f89 100644 --- a/examples/darkroom_demo.lua +++ b/examples/darkroom_demo.lua @@ -58,11 +58,10 @@ local PS = dt.configuration.running_os == "windows" and "\\" or "/" -- - - - - - - - - - - - - - - - - - - - - - - - -- T R A N S L A T I O N S -- - - - - - - - - - - - - - - - - - - - - - - - -local gettext = dt.gettext -gettext.bindtextdomain(MODULE_NAME, dt.configuration.config_dir..PS.."lua"..PS.."locale"..PS) +local gettext = dt.gettext.gettext local function _(msgid) - return gettext.dgettext(MODULE_NAME, msgid) + return gettext(msgid) end -- - - - - - - - - - - - - - - - - - - - - - - - @@ -98,7 +97,7 @@ sleep(1500) -- display first 10 images of collection pausing for a second between each for i, img in ipairs(dt.collection) do - dt.print(_("Displaying image " .. i)) + dt.print(string.format(_("Displaying image "), i)) dt.gui.views.darkroom.display_image(img) sleep(1500) if i == max_images then diff --git a/examples/gettextExample.lua b/examples/gettextExample.lua index 59a676c..f74b503 100644 --- a/examples/gettextExample.lua +++ b/examples/gettextExample.lua @@ -67,22 +67,18 @@ end -- Not translated Text dt.print_error("Hello World!") -local gettext = dt.gettext +local gettext = dt.gettext.gettext + -- Translate a string using the darktable textdomain -dt.print_error(gettext.gettext("image")) - --- Tell gettext where to find the .mo file translating messages for a particular domain - -gettext.bindtextdomain("gettextExample",dt.configuration.config_dir.."/lua/locale/") --- Translate a string using the specified textdomain -dt.print_error(gettext.dgettext("gettextExample", 'Hello World!')) +dt.print_error(gettext("image")) -- Define a local function called _ to make the code more readable and have it call dgettext -- with the proper domain. local function _(msgid) - return gettext.dgettext("gettextExample", msgid) + return gettext(msgid) end -dt.print_error(_('Hello World!')) + +dt.print_error(_("Hello World!")) -- set the destroy routine so that script_manager can call it when -- it's time to destroy the script and then return the data to diff --git a/examples/hello_world.lua b/examples/hello_world.lua index f8fba8d..3839ebd 100644 --- a/examples/hello_world.lua +++ b/examples/hello_world.lua @@ -29,15 +29,23 @@ USAGE local dt = require "darktable" local du = require "lib/dtutils" +-- translation facilities + du.check_min_api_version("2.0.0", "hello_world") +local gettext = dt.gettext.gettext + +local function _(msg) + return gettext(msg) +end + -- script_manager integration to allow a script to be removed -- without restarting darktable local function destroy() -- nothing to destroy end -dt.print("hello, world") +dt.print(_("hello, world")) -- set the destroy routine so that script_manager can call it when -- it's time to destroy the script and then return the data to diff --git a/examples/lighttable_demo.lua b/examples/lighttable_demo.lua index fc07132..768e4ab 100644 --- a/examples/lighttable_demo.lua +++ b/examples/lighttable_demo.lua @@ -59,11 +59,10 @@ end -- - - - - - - - - - - - - - - - - - - - - - - - -- T R A N S L A T I O N S -- - - - - - - - - - - - - - - - - - - - - - - - -local gettext = dt.gettext -gettext.bindtextdomain(MODULE_NAME, dt.configuration.config_dir..PS.."lua"..PS.."locale"..PS) +local gettext = dt.gettext.gettext local function _(msgid) - return gettext.dgettext(MODULE_NAME, msgid) + return gettext(msgid) end -- - - - - - - - - - - - - - - - - - - - - - - - @@ -145,17 +144,17 @@ sleep(2000) for n, layout in ipairs(layouts) do dt.gui.libs.lighttable_mode.layout(layout) - dt.print(_("set lighttable layout to " .. layout)) - dt.print_log(_("set lighttable layout to " .. layout)) + dt.print(string.format(_("set lighttable layout to %s"), layout)) + dt.print_log("set lighttable layout to " .. layout) sleep(1500) for i = 1, 10 do dt.gui.libs.lighttable_mode.zoom_level(i) - dt.print(_("Set zoom level to " .. i)) + dt.print(string.format(_("Set zoom level to %d"), i)) sleep(1500) end for i = 9, 1, -1 do dt.gui.libs.lighttable_mode.zoom_level(i) - dt.print(_("Set zoom level to " .. i)) + dt.print(string.format(_("Set zoom level to %d"), i)) sleep(1500) end end @@ -174,12 +173,12 @@ dt.print_log("starting sorts") for n, sort in ipairs(sorts) do dt.gui.libs.filter.sort(sort) - dt.print(_("set lighttable sort to " .. sort)) + dt.print(string.format(_("set lighttable sort to %s"), sort)) sleep(1500) for m, sort_order in ipairs(sort_orders) do dt.gui.libs.filter.sort_order(sort_order) - dt.print(_("sort order set to " .. sort_order)) + dt.print(string.format(_("sort order set to %s"), sort_order)) sleep(1500) end end @@ -190,12 +189,12 @@ dt.print(_("lighttable filtering demonstration")) for n, rating in ipairs(ratings) do dt.gui.libs.filter.rating(rating) - dt.print(_("set filter to " .. rating)) + dt.print(string.format(_("set filter to %s"), rating)) sleep(1500) for m, rating_comparator in ipairs(rating_comparators) do dt.gui.libs.filter.rating_comparator(rating_comparator) - dt.print(_("set rating comparator to " .. rating_comparator)) + dt.print(string.format(_("set rating comparator to %s"), rating_comparator)) sleep(1500) end end diff --git a/examples/moduleExample.lua b/examples/moduleExample.lua index bf5a325..23184aa 100644 --- a/examples/moduleExample.lua +++ b/examples/moduleExample.lua @@ -47,12 +47,10 @@ script_data.show = nil -- only required for libs since the destroy_method only h -- translation -- https://www.darktable.org/lua-api/index.html#darktable_gettext -local gettext = dt.gettext - -gettext.bindtextdomain("moduleExample", dt.configuration.config_dir .. "/lua/locale/") +local gettext = dt.gettext.gettext local function _(msgid) - return gettext.dgettext("moduleExample", msgid) + return gettext(msgid) end -- declare a local namespace and a couple of variables we'll need to install the module diff --git a/examples/multi_os.lua b/examples/multi_os.lua index 4ab650f..7486a25 100644 --- a/examples/multi_os.lua +++ b/examples/multi_os.lua @@ -70,13 +70,10 @@ local dtsys = require "lib/dtutils.system" -- system utilities translations, inserting this lays the groundwork for anyone who wants to translate the strings. ]] -local gettext = dt.gettext - --- Tell gettext where to find the .mo file translating messages for a particular domain -gettext.bindtextdomain("multi_os",dt.configuration.config_dir.."/lua/locale/") +local gettext = dt.gettext.gettext local function _(msgid) - return gettext.dgettext("multi_os", msgid) + return gettext(msgid) end --[[ @@ -187,7 +184,7 @@ local function extract_embedded_jpeg(images) end else dt.print_error(image.filename .. " is not a raw file. No image can be extracted") -- print debugging error message - dt.print(image.filename .. " is not a raw file. No image can be extracted") -- print the error to the screen + dt.print(string.format(_("%s is not a raw file. No image can be extracted"), image.filename)) -- print the error to the screen end end else @@ -241,7 +238,7 @@ end dt.gui.libs.image.register_action( "multi_os", _("extract embedded jpeg"), function(event, images) extract_embedded_jpeg(images) end, - "extract embedded jpeg" + _("extract embedded jpeg") ) --[[ @@ -251,7 +248,7 @@ dt.gui.libs.image.register_action( dt.register_event( "multi_os", "shortcut", function(event, shortcut) extract_embedded_jpeg(dt.gui.action_images) end, - "extract embedded jpeg" + _("extract embedded jpeg") ) --[[ diff --git a/examples/panels_demo.lua b/examples/panels_demo.lua index 1f74d71..5938398 100644 --- a/examples/panels_demo.lua +++ b/examples/panels_demo.lua @@ -59,11 +59,10 @@ local PS = dt.configuration.running_os == "windows" and "\\" or "/" -- - - - - - - - - - - - - - - - - - - - - - - - -- T R A N S L A T I O N S -- - - - - - - - - - - - - - - - - - - - - - - - -local gettext = dt.gettext -gettext.bindtextdomain(MODULE_NAME, dt.configuration.config_dir..PS.."lua"..PS.."locale"..PS) +local gettext = dt.gettext.gettext local function _(msgid) - return gettext.dgettext(MODULE_NAME, msgid) + return gettext(msgid) end -- - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/preferenceExamples.lua b/examples/preferenceExamples.lua index 99f8518..74e6152 100644 --- a/examples/preferenceExamples.lua +++ b/examples/preferenceExamples.lua @@ -24,28 +24,36 @@ USAGE local dt = require "darktable" local du = require "lib/dtutils" +-- translation facilities + +local gettext = dt.gettext.gettext + +local function _(msg) + return gettext(msg) +end + du.check_min_api_version("2.0.1", "preferenceExamples") dt.preferences.register("preferenceExamples", -- script: This is a string used to avoid name collision in preferences (i.e namespace). Set it to something unique, usually the name of the script handling the preference. "preferenceExamplesString", -- name "string", -- type - "Example String", -- label - "Example String Tooltip", -- tooltip + _("Example String"), -- label + _("Example String Tooltip"), -- tooltip "String") -- default dt.preferences.register("preferenceExamples", -- script: This is a string used to avoid name collision in preferences (i.e namespace). Set it to something unique, usually the name of the script handling the preference. "preferenceExamplesBool", -- name "bool", -- type - "Example Boolean", -- label - "Example Boolean Tooltip", -- tooltip + _("Example Boolean"), -- label + _("Example Boolean Tooltip"), -- tooltip true) -- default dt.preferences.register("preferenceExamples", -- script: This is a string used to avoid name collision in preferences (i.e namespace). Set it to something unique, usually the name of the script handling the preference. "preferenceExamplesInteger", -- name "integer", -- type - "Example Integer", -- label - "Example Integer Tooltip", -- tooltip + _("Example Integer"), -- label + _("Example Integer Tooltip"), -- tooltip 2, -- default 1, -- min 99) -- max @@ -53,8 +61,8 @@ dt.preferences.register("preferenceExamples", -- script: This is a string dt.preferences.register("preferenceExamples", -- script: This is a string used to avoid name collision in preferences (i.e namespace). Set it to something unique, usually the name of the script handling the preference. "preferenceExamplesFloat", -- name "float", -- type - "Example Float", -- label - "Example Float Tooltip", -- tooltip + _("Example Float"), -- label + _("Example Float Tooltip"), -- tooltip 1.3, -- default 1, -- min 99, -- max @@ -63,22 +71,22 @@ dt.preferences.register("preferenceExamples", -- script: This is a string dt.preferences.register("preferenceExamples", -- script: This is a string used to avoid name collision in preferences (i.e namespace). Set it to something unique, usually the name of the script handling the preference. "preferenceExamplesFile", -- name "file", -- type - "Example File", -- label - "Example File Tooltip", -- tooltip + _("Example File"), -- label + _("Example File Tooltip"), -- tooltip "") -- default dt.preferences.register("preferenceExamples", -- script: This is a string used to avoid name collision in preferences (i.e namespace). Set it to something unique, usually the name of the script handling the preference. "preferenceExamplesDirectory", -- name "directory", -- type - "Example Directory", -- label - "Example Directory Tooltip", -- tooltip + _("Example Directory"), -- label + _("Example Directory Tooltip"), -- tooltip "") -- default dt.preferences.register("preferenceExamples", -- script: This is a string used to avoid name collision in preferences (i.e namespace). Set it to something unique, usually the name of the script handling the preference. "preferenceExamplesEnum", -- name "enum", -- type - "Example Enum", -- label - "Example Enum Tooltip", -- tooltip + _("Example Enum"), -- label + _("Example Enum Tooltip"), -- tooltip "Enum 1", -- default "Enum 1", "Enum 2") -- values diff --git a/examples/printExamples.lua b/examples/printExamples.lua index b220b7a..b7be20c 100644 --- a/examples/printExamples.lua +++ b/examples/printExamples.lua @@ -24,6 +24,14 @@ local du = require "lib/dtutils" du.check_min_api_version("5.0.0", "printExamples") +-- translation facilities + +local gettext = dt.gettext.gettext + +local function _(msg) + return gettext(msg) +end + -- script_manager integration to allow a script to be removed -- without restarting darktable local function destroy() @@ -32,7 +40,7 @@ end -- Will print a string to the darktable control log (the long -- overlayed window that appears over the main panel). -dt.print("print") +dt.print(_("print")) -- This function will print its parameter if the Lua logdomain is -- activated. Start darktable with the "-d lua" command line option diff --git a/examples/running_os.lua b/examples/running_os.lua index d214b2a..a179e9f 100644 --- a/examples/running_os.lua +++ b/examples/running_os.lua @@ -30,13 +30,21 @@ local du = require "lib/dtutils" du.check_min_api_version("5.0.0", "running_os") +-- translation facilities + +local gettext = dt.gettext.gettext + +local function _(msg) + return gettext(msg) +end + -- script_manager integration to allow a script to be removed -- without restarting darktable local function destroy() -- nothing to destroy end -dt.print("You are running: "..dt.configuration.running_os) +dt.print(string.format(_("You are running: %s"), dt.configuration.running_os)) -- set the destroy routine so that script_manager can call it when -- it's time to destroy the script and then return the data to