summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2016-08-27 14:00:59 +0100
committerDaniel Silverstone <dsilvers@digital-scurf.org>2016-08-27 14:00:59 +0100
commite3e7951c1c1c6f465ffa8150ce395a98f4d3afd5 (patch)
treec84e5f2d69fe79c5b78fd30faa012f8284b36997
parentbcdfd57bae9497aea494eb0fad4c858d63df1642 (diff)
downloadgitano-e3e7951c1c1c6f465ffa8150ce395a98f4d3afd5.tar.gz
Basic i18n module
-rw-r--r--Makefile14
-rw-r--r--bin/gitano-auth.in1
-rwxr-xr-xbin/gitano-command.cgi.in1
-rw-r--r--bin/gitano-post-receive-hook.in1
-rw-r--r--bin/gitano-pre-receive-hook.in1
-rw-r--r--bin/gitano-setup.in1
-rwxr-xr-xbin/gitano-smart-http.cgi.in1
-rw-r--r--bin/gitano-update-hook.in1
-rw-r--r--bin/gitano-update-ssh.in1
-rw-r--r--lib/gitano.lua2
-rw-r--r--lib/gitano/i18n.lua28
-rw-r--r--utils/install-lua-bin2
12 files changed, 53 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 4bda393..690eb5a 100644
--- a/Makefile
+++ b/Makefile
@@ -18,6 +18,7 @@ LIB_BIN_INST_PATH := $(DESTDIR)$(LIB_BIN_PATH)
SHARE_PATH := $(INST_ROOT)/share/gitano
SHARE_INST_PATH := $(DESTDIR)$(SHARE_PATH)
SKEL_INST_PATH := $(SHARE_INST_PATH)/skel
+LANG_INST_PATH := $(SHARE_INST_PATH)/lang
MAN_PATH := $(INST_ROOT)/share/man
MAN_INST_PATH := $(DESTDIR)$(MAN_PATH)
PLUGIN_PATH := $(SYSCONF_DIR)/gitano/plugins:$(INST_ROOT)/lib/gitano/plugins
@@ -59,6 +60,8 @@ SKEL_FILES := gitano-admin/rules/selfchecks.lace \
gitano-admin/rules/adminchecks.lace \
gitano-admin/rules/createrepo.lace
+LANG_FILES := json.lua en.lua
+
MAN1S := gitano-setup.1
@@ -124,7 +127,7 @@ bin/%: bin/%.in $(GEN_BIN)
testing/%: testing/%.in $(GEN_BIN)
$(call GEN_LOCAL_BIN,$<,$@)
-install: install-bins install-lib-bins install-mods install-skel install-man install-plugins
+install: install-bins install-lib-bins install-mods install-skel install-man install-plugins install-lang
install-man:
mkdir -p $(MAN_INST_PATH)/man1
@@ -148,12 +151,21 @@ install-skel:
install -m 644 skel/$$SKELFILE $(SKEL_INST_PATH)/$$SKELFILE; \
done
+install-lang:
+ mkdir -p $(LANG_INST_PATH)
+ for LANGFILE in $(LANG_FILES); do \
+ install -m 644 lang/$$LANGFILE $(LANG_INST_PATH)/$$LANGFILE; \
+ done
+
install-plugins:
mkdir -p $(DESTDIR)$(INST_ROOT)/lib/gitano/plugins
mkdir -p $(DESTDIR)$(SYSCONF_DIR)/gitano/plugins
for PLUGIN in $(PLUGINS); do \
install -m 644 plugins/$$PLUGIN $(DESTDIR)$(INST_ROOT)/lib/gitano/plugins; \
done
+ for LANGFILE in $(wildcard $(patsubst %.lua,plugins/%_*.lua,$(PLUGINS))); do \
+ install -m 644 $$LANGFILE $(DESTDIR)$(INST_ROOT)/lib/gitano/plugins; \
+ done
YARN_ARGS :=
ifneq ($(LUA_PATH),)
diff --git a/bin/gitano-auth.in b/bin/gitano-auth.in
index 2ec6c45..00f2f39 100644
--- a/bin/gitano-auth.in
+++ b/bin/gitano-auth.in
@@ -18,6 +18,7 @@ local sp = require "luxio.subprocess"
-- @@GITANO_BIN_PATH
-- @@GITANO_SHARE_PATH
+-- @@GITANO_I18N_PATH
-- @@GITANO_PLUGIN_PATH
local start_log_level = gitano.log.get_level()
diff --git a/bin/gitano-command.cgi.in b/bin/gitano-command.cgi.in
index 94c5dd5..59995b2 100755
--- a/bin/gitano-command.cgi.in
+++ b/bin/gitano-command.cgi.in
@@ -17,6 +17,7 @@ local sio = require "luxio.simple"
-- @@GITANO_BIN_PATH
-- @@GITANO_SHARE_PATH
+-- @@GITANO_I18N_PATH
-- @@GITANO_PLUGIN_PATH
local stdout = sio.stdout
diff --git a/bin/gitano-post-receive-hook.in b/bin/gitano-post-receive-hook.in
index df42ffc..020cf04 100644
--- a/bin/gitano-post-receive-hook.in
+++ b/bin/gitano-post-receive-hook.in
@@ -18,6 +18,7 @@ local sp = require "luxio.subprocess"
-- @@GITANO_BIN_PATH
-- @@GITANO_SHARE_PATH
+-- @@GITANO_I18N_PATH
-- @@GITANO_PLUGIN_PATH
local start_log_level = gitano.log.get_level()
diff --git a/bin/gitano-pre-receive-hook.in b/bin/gitano-pre-receive-hook.in
index 2d9ef7e..b917633 100644
--- a/bin/gitano-pre-receive-hook.in
+++ b/bin/gitano-pre-receive-hook.in
@@ -18,6 +18,7 @@ local sp = require "luxio.subprocess"
-- @@GITANO_BIN_PATH
-- @@GITANO_SHARE_PATH
+-- @@GITANO_I18N_PATH
-- @@GITANO_PLUGIN_PATH
local start_log_level = gitano.log.get_level()
diff --git a/bin/gitano-setup.in b/bin/gitano-setup.in
index b39a6b5..20ad343 100644
--- a/bin/gitano-setup.in
+++ b/bin/gitano-setup.in
@@ -18,6 +18,7 @@ local clod = require "clod"
-- @@GITANO_BIN_PATH
-- @@GITANO_SHARE_PATH
+-- @@GITANO_I18N_PATH
-- @@GITANO_PLUGIN_PATH
local possible_answers = {...}
diff --git a/bin/gitano-smart-http.cgi.in b/bin/gitano-smart-http.cgi.in
index 31749ec..892e32d 100755
--- a/bin/gitano-smart-http.cgi.in
+++ b/bin/gitano-smart-http.cgi.in
@@ -17,6 +17,7 @@ local sio = require "luxio.simple"
-- @@GITANO_BIN_PATH
-- @@GITANO_SHARE_PATH
+-- @@GITANO_I18N_PATH
-- @@GITANO_PLUGIN_PATH
local stdout = sio.stdout
diff --git a/bin/gitano-update-hook.in b/bin/gitano-update-hook.in
index 85d1c76..80db919 100644
--- a/bin/gitano-update-hook.in
+++ b/bin/gitano-update-hook.in
@@ -18,6 +18,7 @@ local sp = require "luxio.subprocess"
-- @@GITANO_BIN_PATH
-- @@GITANO_SHARE_PATH
+-- @@GITANO_I18N_PATH
-- @@GITANO_PLUGIN_PATH
local refname, oldsha, newsha = ...
diff --git a/bin/gitano-update-ssh.in b/bin/gitano-update-ssh.in
index 136d6df..27217b4 100644
--- a/bin/gitano-update-ssh.in
+++ b/bin/gitano-update-ssh.in
@@ -18,6 +18,7 @@ local sp = require "luxio.subprocess"
-- @@GITANO_BIN_PATH
-- @@GITANO_SHARE_PATH
+-- @@GITANO_I18N_PATH
-- @@GITANO_PLUGIN_PATH
local repo_root = ...
diff --git a/lib/gitano.lua b/lib/gitano.lua
index 31e62d5..85ea868 100644
--- a/lib/gitano.lua
+++ b/lib/gitano.lua
@@ -16,6 +16,7 @@ local markdown = require 'gitano.markdown'
local supple = require 'gitano.supple'
local auth = require 'gitano.auth'
local plugins = require 'gitano.plugins'
+local i18n = require 'gitano.i18n'
return {
util = util,
@@ -29,4 +30,5 @@ return {
supple = supple,
auth = auth,
plugins = plugins,
+ i18n = i18n,
}
diff --git a/lib/gitano/i18n.lua b/lib/gitano/i18n.lua
new file mode 100644
index 0000000..89dfe6d
--- /dev/null
+++ b/lib/gitano/i18n.lua
@@ -0,0 +1,28 @@
+-- gitano.i18n
+--
+-- Internationalisation support for Gitano
+--
+-- Copyright 2016 Daniel Silverstone <dsilvers@digital-scurf.org>
+--
+--
+
+local tongue = require "tongue"
+
+local basepath = nil
+
+local function set_langpack_path(path)
+ basepath = path
+end
+
+local codex = nil
+
+local function initialise()
+ assert(basepath, "No basepath provided!")
+ if codex then return end
+ -- Init for i18n involves finding the basic language pack tree, loading the
+ -- language tree in ready, and preparing a codex...
+end
+
+return {
+ set_langpack_path = set_langpack_path,
+}
diff --git a/utils/install-lua-bin b/utils/install-lua-bin
index 5036ae9..4c1feae 100644
--- a/utils/install-lua-bin
+++ b/utils/install-lua-bin
@@ -50,6 +50,8 @@ while line do
output_fh:write(("gitano.config.share_path(%q)\n"):format(inst_share_path))
elseif token == "GITANO_PLUGIN_PATH" then
output_fh:write(("gitano.plugins.load_plugins %s\n"):format(inst_plugin_path))
+ elseif token == "GITANO_I18N_PATH" then
+ output_fh:write(("gitano.i18n.set_langpack_path(%q)\n"):format(inst_share_path .. "/lang"))
else
output_fh:write("-- Unknown token: " .. token .. "\n")
end