Commit graph

16 commits

Author SHA1 Message Date
Howard Su
9935a5c735 luci-base: Import latest version of jsmin
Signed-off-by: Howard Su <howard0su@gmail.com>
2020-03-01 08:50:30 +08:00
Jo-Philipp Wich
2a1245a497 luci-base: po2lmo: refactor code
Refactor the po2lmo conversion code to be more robust and to properly
handle input files without location comments.

Ref: 9c1bac4168 (commitcomment-37036663)
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2020-02-01 14:41:07 +01:00
Jo-Philipp Wich
9939fc5a26 luci-base: add support for plural translations and contexts in Lua api
- 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-25 23:21:35 +01:00
Jo-Philipp Wich
9c1bac4168 luci-base: handle more po format features in po2lmo
- 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>
2020-01-22 22:02:24 +01:00
Jo-Philipp Wich
17690f2d73 build: add build option to minify *.js files
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-11-22 12:49:14 +01:00
Jo-Philipp Wich
51de74d520 luci-base: further hash calculation signedness bugfixes
- 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-19 13:31:43 +01:00
Jo-Philipp Wich
62102f4f0e luci-base: template: add translation iterator function
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-11-05 11:01:45 +01:00
yangfl
401382a459 treewide: Fix typos in comments
Signed-off-by: David Yang <mmyangfl@gmail.com>
2018-10-10 15:00:07 +08:00
Jo-Philipp Wich
1d5a3123ed Revert "luci-base: add urldecode() and urlencode() C implementations"
This reverts commit ad7dc4a492.

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-18 16:21:27 +02:00
Jo-Philipp Wich
ad7dc4a492 luci-base: add urldecode() and urlencode() C implementations
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>
2018-04-10 11:41:32 +02:00
Chuanhong Guo
c1f0a9971a luci-base:Turn off pattern matching when generating distversion
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-05-14 11:46:28 +08:00
Hannu Nyman
50451c4ac5 luci-base: Include Openwrt build revision in displayed version string
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-11 14:16:24 +02:00
Hannu Nyman
7553654bb1 LuCI: Display the proper LuCI git branch in GUI
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>
2016-03-10 19:50:58 +02:00
Jo-Philipp Wich
41d2b33087 Update my email addresses in the license headers
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-01-16 23:49:44 +01:00
Jo-Philipp Wich
9a81d8ff32 luci-base: handle missing translations in template engine
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-10 21:19:54 +01:00
Jo-Philipp Wich
1bb4822dca Rework LuCI build system
* 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>
2015-01-08 16:26:20 +01:00