summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base/src
AgeCommit message (Collapse)Author
2020-02-01luci-base: po2lmo: refactor codeJo-Philipp Wich
Refactor the po2lmo conversion code to be more robust and to properly handle input files without location comments. Ref: https://github.com/openwrt/luci/commit/9c1bac4168d151c2a3a5a1f957adbd68b6ae0746#commitcomment-37036663 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2020-01-25luci-base: add support for plural translations and contexts in Lua apiJo-Philipp Wich
- Introduce a new luci.template.parser.ntranslate() function which takes a count, a singular and a plural translation string as well as an optional context argument and returns the appropriate, language specific plural translation. - Introduce an optional translation context argument in the existing luci.template.parser.translate() function - Support translation contexts in LuCI template directives. Translation messages are split on the first unescaped pipe character and the reamining string after the pipe is treated as context. Examples: - `string.format(p.ntranslate(n, "1 apple", "%d apples"), n)` will return an appropriate plural translation for the given amount. - `translate("Load", "The system load")` will return an appropiate translation for `Load`, using `The system load` as disambiguation context (a `msgctxt` directive in *.po files). - Likewise `<%:Load|The system load%>` will translate the word `Load` while using the remainder of the string as context. - To use pipes in translations strings literally, they must be escaped: `<%:Use the "\|" character%>` will translate the literal string `Use the "|" character`. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2020-01-22luci-base: handle more po format features in po2lmoJo-Philipp Wich
- Extract and store the plural calculation function in .lmo files - Handle plural translation messages - Handle translation contexts Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-11-22build: add build option to minify *.js filesJo-Philipp Wich
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-11-19luci-base: further hash calculation signedness bugfixesJo-Philipp Wich
- cbi.js: make sure to treat single bytes as signed char when handling end cases - template_lmo.c: make sure to treat single bytes as signed char when handling end cases, avoids hash miscalculations on ARM Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-11-05luci-base: template: add translation iterator functionJo-Philipp Wich
Introduce a new luci.template.parser.get_translations() function which will iterate all loaded translation entries and pass the to the given callback function. This is useful to expose the loaded translations in other formats, e.g. for wrapping them into JSON feeds. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-10-10treewide: Fix typos in commentsyangfl
Signed-off-by: David Yang <mmyangfl@gmail.com>
2018-04-18Revert "luci-base: add urldecode() and urlencode() C implementations"Jo-Philipp Wich
This reverts commit ad7dc4a4928e77ae142d0fe040f9e9e64b530e82. Since we're using liblucihttp now, that library is the appropriate place to add such decoding helper functions. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-10luci-base: add urldecode() and urlencode() C implementationsJo-Philipp Wich
The C implementations of urlencode and urldecode are considerably faster than their current Lua counterparts. On an AMD Geode system, the C variant is up to ten times faster when decoding strings and up to four times faster when encoding them. The functions are also designed to only allocate new strings when any actual changes are required, otherwise they reuse the existing input strings, reducing the overal memory usage somewhat. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-05-14luci-base:Turn off pattern matching when generating distversionChuanhong Guo
Otherwize the distrevision may be displayed twice if it contains some special matching patterns.(For example I am using "git-$hash" in my own OpenWrt branch.) Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2016-03-11luci-base: Include Openwrt build revision in displayed version stringHannu Nyman
The version string displayed in the footer and the overview page contains both LuCI and Openwrt versions. But due to differences in the contents of /etc/openwrt_release the exact Openwrt revision r..... may be missing: * In trunk that revision is included in the DISTRIB_DESCRIPTION field that is displayed in Luci as the Openwrt version. * In release branches, that field contains the release number like 15.05. Revision number is always present in DISTRIB_REVISION field, so add the revision from that field in case the revision is not already present in the string. Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2016-03-10LuCI: Display the proper LuCI git branch in GUIHannu Nyman
Adjust luci.mk and luci-base to find out correctly if Luci is built from master or from a branch. Display that value in the footer and the overview page. * Evaluate the git branch in luci.mk and pass that to LuCI submodules as a make variable. Use branch name, ignore tags. * Deprecate svn detection in luci-base's mkversion.sh that generates version.lua. Simply use the value passed by make. Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2015-01-16Update my email addresses in the license headersJo-Philipp Wich
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-01-10luci-base: handle missing translations in template engineJo-Philipp Wich
Previously the template engine did not interpolate translation macros if no translation catalogue could be loaded due to a missing i18n directory. Change the offending code to return the original string in any error case. Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-01-08Rework LuCI build systemJo-Philipp Wich
* Rename subdirectories to their repective OpenWrt package names * Make each LuCI module its own standalone package * Deploy a shared luci.mk which is used by each module Makefile Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>