mirror of
https://github.com/minetest-mods/intllib.git
synced 2024-11-14 06:20:31 +01:00
Updated readme, in an attempt to make it more readable
This commit is contained in:
parent
475711f7f7
commit
0c7b30464c
|
@ -1,30 +1,31 @@
|
|||
|
||||
Internationalization Lib for Minetest
|
||||
#Internationalization Lib for Minetest
|
||||
By Diego Martínez (a.k.a. "Kaeza").
|
||||
Released as WTFPL.
|
||||
|
||||
This mod is an attempt at providing internationalization support for mods
|
||||
(something Minetest currently lacks).
|
||||
|
||||
How do I use it?
|
||||
##How do I use it?
|
||||
In order to enable it for your mod, copy the following code snippet and paste
|
||||
it at the beginning of your source file(s):
|
||||
|
||||
-- Boilerplate to support localized strings if intllib mod is installed.
|
||||
local S
|
||||
if minetest.get_modpath("intllib") then
|
||||
S = intllib.Getter()
|
||||
else
|
||||
-- If you don't use insertions (@1, @2, etc) you can use this:
|
||||
S = function(s) return s end
|
||||
```lua
|
||||
-- Boilerplate to support localized strings if intllib mod is installed.
|
||||
local S
|
||||
if minetest.get_modpath("intllib") then
|
||||
S = intllib.Getter()
|
||||
else
|
||||
-- If you don't use insertions (@1, @2, etc) you can use this:
|
||||
S = function(s) return s end
|
||||
|
||||
-- If you use insertions, but not insertion escapes this will work:
|
||||
S = function(s,a,...)a={a,...}return s:gsub("@(%d+)",function(n)return a[tonumber(n)]end)end
|
||||
|
||||
-- Use this if you require full functionality
|
||||
S = function(s,a,...)if a==nil then return s end a={a,...}return s:gsub("(@?)@(%(?)(%d+)(%)?)",function(e,o,n,c)if e==""then return a[tonumber(n)]..(o==""and c or"")else return"@"..o..n..c end end) end
|
||||
end
|
||||
-- If you use insertions, but not insertion escapes this will work:
|
||||
S = function(s,a,...)a={a,...}return s:gsub("@(%d+)",function(n)return a[tonumber(n)]end)end
|
||||
|
||||
-- Use this if you require full functionality
|
||||
S = function(s,a,...)if a==nil then return s end a={a,...}return s:gsub("(@?)@(%(?)(%d+)(%)?)",function(e,o,n,c)if e==""then return a[tonumber(n)]..(o==""and c or"")else return"@"..o..n..c end end) end
|
||||
end
|
||||
```
|
||||
You will also need to optionally depend on intllib, to do so add "intllib?" to
|
||||
a empty line in your depends.txt. Also note that if intllib is not installed,
|
||||
the S() function is defined so it returns the string unchanged. This is done
|
||||
|
@ -34,30 +35,34 @@ if the lib is actually installed.
|
|||
Next, for each "translatable" string in your sources, use the S() function
|
||||
(defined in the snippet) to return the translated string. For example:
|
||||
|
||||
minetest.register_node("mymod:mynode", {
|
||||
description = S("My Fabulous Node"),
|
||||
<...>
|
||||
})
|
||||
```lua
|
||||
minetest.register_node("mymod:mynode", {
|
||||
description = S("My Fabulous Node"),
|
||||
<...>
|
||||
})
|
||||
```
|
||||
|
||||
Then, you create a `locale' directory inside your mod directory, with files
|
||||
Then, you create a 'locale' directory inside your mod directory, with files
|
||||
named after the two-letter ISO Language Code of the languages you want to
|
||||
support. Here's an example for a Spanish locale file (`es.txt'):
|
||||
support. Here's an example for a Spanish locale file ('es.txt'):
|
||||
|
||||
# Lines beginning with a pound sign are comments and are effectively ignored
|
||||
# by the reader. Note that comments only span until the end of the line;
|
||||
# there's no support for multiline comments.
|
||||
Hello, World! = Hola, Mundo!
|
||||
String with\nnewlines = Cadena con\nsaltos de linea
|
||||
String with an \= equals sign = Cadena con un signo de \= igualdad
|
||||
```cfg
|
||||
# Lines beginning with a pound sign are comments and are effectively ignored
|
||||
# by the reader. Note that comments only span until the end of the line;
|
||||
# there's no support for multiline comments.
|
||||
Hello, World! = Hola, Mundo!
|
||||
String with\nnewlines = Cadena con\nsaltos de linea
|
||||
String with an \= equals sign = Cadena con un signo de \= igualdad
|
||||
```
|
||||
|
||||
Since there's currently no portable way to detect the language, this library
|
||||
tries several alternatives, and uses the first one found:
|
||||
- `language' setting in `minetest.conf'
|
||||
- `LANG' environment variable (this is always set on Unix-like OSes).
|
||||
- Default of "en".
|
||||
- `language` setting in `minetest.conf`
|
||||
- `LANG` environment variable (this is always set on Unix-like OSes).
|
||||
- Default of `"en"`.
|
||||
Note that in any case only up to the first two characters are used, so for
|
||||
example, the settings "de_DE.UTF-8", "de_DE", and "de" are all equal.
|
||||
Windows users have no `LANG' environment variable by default. To add it, do
|
||||
example, the settings `"de_DE.UTF-8"`, `"de_DE"`, and `"de"` are all equal.
|
||||
Windows users have no `LANG` environment variable by default. To add it, do
|
||||
the following:
|
||||
- Click Start->Settings->Control Panel.
|
||||
- Start the "System" applet.
|
||||
|
@ -67,7 +72,7 @@ the following:
|
|||
- Type "LANG" (without quotes) as name and the language code as value.
|
||||
- Click OK until all dialogs are closed.
|
||||
Alternatively for all platforms, if you don't want to modify system settings,
|
||||
you may add the following line to your `minetest.conf' file:
|
||||
you may add the following line to your 'minetest.conf' file:
|
||||
language = <language code>
|
||||
|
||||
Also note that there are some problems with using accented, and in general
|
||||
|
@ -78,6 +83,8 @@ Thanks for reading up to this point.
|
|||
Should you have any comments/suggestions, please post them in the forum topic.
|
||||
|
||||
Let there be translated texts! :P
|
||||
--
|
||||
|
||||
\--
|
||||
|
||||
Yours Truly,
|
||||
Kaeza
|
Loading…
Reference in New Issue
Block a user