From 43616ce3b713cf8bce7a32b6afe408e68afa5e7f Mon Sep 17 00:00:00 2001 From: Jonathan jegouzo Date: Mon, 1 Oct 2012 20:18:06 +0200 Subject: [PATCH] Initial publication --- .gitattributes | 22 +++++++ .gitignore | 163 +++++++++++++++++++++++++++++++++++++++++++++++++ README.txt | 50 +++++++++++++++ depends.txt | 1 + init.lua | 38 ++++++++++++ 5 files changed, 274 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 README.txt create mode 100644 depends.txt create mode 100644 init.lua diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..412eeda --- /dev/null +++ b/.gitattributes @@ -0,0 +1,22 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ebd21a --- /dev/null +++ b/.gitignore @@ -0,0 +1,163 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results +[Dd]ebug/ +[Rr]elease/ +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.vspscc +.builds +*.dotCover + +## TODO: If you have NuGet Package Restore enabled, uncomment this +#packages/ + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf + +# Visual Studio profiler +*.psess +*.vsp + +# ReSharper is a .NET coding add-in +_ReSharper* + +# Installshield output folder +[Ee]xpress + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish + +# Others +[Bb]in +[Oo]bj +sql +TestResults +*.Cache +ClientBin +stylecop.* +~$* +*.dbmdl +Generated_Code #added for RIA/Silverlight projects + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML + + + +############ +## Windows +############ + +# Windows image file caches +Thumbs.db + +# Folder config file +Desktop.ini + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +dist +build +eggs +parts +bin +var +sdist +develop-eggs +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg + +# Mac crap +.DS_Store diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..bd05fc0 --- /dev/null +++ b/README.txt @@ -0,0 +1,50 @@ +Minetest 0.4 mod: localisation +============================== + +License of source code: +----------------------- +Copyright (C) 2011-2012 Jonjeg + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +http://www.gnu.org/licenses/lgpl-2.1.html + +Description: +------------ +This mod allow mod devellopers to publish their mod in differents +language with less work needed. + +Usage: +------ + +The minetest setting 'language' is set to EN when this mod is first loaded. +You can modify it in your minetest.conf. +If no translation is found for a message, his english counterpart is used instead. +If no english counterpart are found, then an error message is returned. + +Exemple(Code lua) : +------------------- + local translations = { + EN = { + message1 = "english version", + message_with_parameter = "$1 will be replaced by the first additionnal parameter", + message_existing_in_english_only = "lorem ipsum" + ...etc + }, + FR = { + message1 = "version française" + message_with_parameter = "$1 va être remplacé par la 1ère valeur additionnelle" + message_with_some_parameters = "$1,$2,$3" + } + } + translate(translations,"message1") -> "english version" -- si language = EN + translate(translations,"message1") -> "version française" -- si language = FR + translate(translations,"message1") -> "english version" -- si language = other than FR + translate(translations,"message_existing_in_english_only") -> "lorem ipsum" + translate(translations,"message_with_parameter","value") -> "value will be replaced by the first additionnal parameter" -- si language = EN + translate(translations,"message_with_parameter","value") -> "value va être remplacé par la 1ère valeur additionnelle" -- si language = FR + translate(translations,"message_with_some_parameters","value",2,3.5) -> "value,2,3.5" + translate(translations,"message_inexistant","value",2,3.5) -> "Translate(EN,message_inexistant) = No translations available" \ No newline at end of file diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..331d858 --- /dev/null +++ b/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..490fa17 --- /dev/null +++ b/init.lua @@ -0,0 +1,38 @@ +-- Minetest 0.4 mod: localisation +-- See README.txt for licensing and other information. +-- LOCALISATION +if minetest.setting_get("language") == nil then + minetest.setting_set("language", "EN") +end + +function translate(label_list,msg_label,...) + local function translation(label_list,language,msg_label,...) + local msg = label_list[language][msg_label] + local args = {...} + for key,arg in ipairs(args) do + msg = string.gsub(msg, "%$"..key.."", arg) + end + return msg + end + local function err(language,msg_label) + return "Translate("..language..","..msg_label..") = No translations available" + end + local language = minetest.setting_get("language") -- has previously been defined as EN if not set + local fallback = "EN" + if label_list[language] == nil then + -- Fallback on english + language = fallback + if label_list[language] == nil then + return + end err(language,msg_label) + else + if label_list[language][msg_label] == nil then + if language == fallback then + return err(language,msg_label) + else + return translation(label_list,fallback,msg_label,...) + end + end + end + return translation(label_list,language,msg_label,...) +end \ No newline at end of file