aboutsummaryrefslogtreecommitdiff
path: root/core/locale.lua
blob: 5b14a254244166c205c9e9f6ce2cd8c2538db621 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
-- Copyright 2007-2010 Mitchell mitchell<att>caladbolg.net. See LICENSE.

---
-- Contains all messages used by Textadept for localization.
module('locale', package.seeall)

-- Markdown:
-- ## Overview
--
-- All Textadept messages displayed are located in `core/locale.conf`. To change
-- the language, simply put a similar file containing the translated messages in
-- your `~/.textadept/` folder. See `core/locale.conf` for more information.
--
-- Feel free to translate Textadept and send your modified `locale.conf` files
-- to me. I will put them up on the site where they can be accessed.
--
-- ## Fields
--
-- Each message ID in `core/locale.conf` is accessible as a field in this
-- module.

-- Contains all localizations for the current locale.
-- @class table
-- @name localizations
local localizations = {}

local f = io.open(_USERHOME..'/locale.conf', 'rb')
if not f then f = io.open(_HOME..'/core/locale.conf', 'rb') end
if not f then error('"core/locale.conf" not found.') end
for line in f:lines() do
  if not line:find('^%s*%%') then
    local id, str = line:match('^(.-)%s*=%s*(.+)$')
    if id and str then localizations[id] = str end
  end
end
f:close()

---
-- Localizes the given string.
-- @param id String to localize.
function localize(id) return localizations[id] or 'No Localization' end