commit
6558e4eba0
@ -1,28 +0,0 @@ |
|||||||
<?php |
|
||||||
|
|
||||||
/* This script is run on demand to generate JS version of tr() */ |
|
||||||
|
|
||||||
require_once __DIR__ . '/base.php'; |
|
||||||
|
|
||||||
$selected = [ |
|
||||||
'wifi.connected_ip_is', |
|
||||||
'wifi.not_conn', |
|
||||||
'wifi.enter_passwd', |
|
||||||
'term_nav.fullscreen', |
|
||||||
'term_conn.connecting', |
|
||||||
'term_conn.waiting_content', |
|
||||||
'term_conn.disconnected', |
|
||||||
'term_conn.waiting_server', |
|
||||||
'term_conn.reconnecting' |
|
||||||
]; |
|
||||||
|
|
||||||
$out = []; |
|
||||||
foreach ($selected as $key) { |
|
||||||
$out[$key] = tr($key); |
|
||||||
} |
|
||||||
|
|
||||||
file_put_contents(__DIR__. '/js/lang.js', |
|
||||||
"// Generated from PHP locale file\n" . |
|
||||||
'let _tr = ' . json_encode($out, JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE) . ";\n\n" . |
|
||||||
"module.exports = function tr (key) { return _tr[key] || '?' + key + '?' }\n" |
|
||||||
); |
|
@ -0,0 +1,5 @@ |
|||||||
|
let data = require('locale-data') |
||||||
|
|
||||||
|
module.exports = function localize (key) { |
||||||
|
return data[key] || `?${key}?` |
||||||
|
} |
@ -0,0 +1,14 @@ |
|||||||
|
#! /usr/bin/env php |
||||||
|
<?php |
||||||
|
|
||||||
|
require_once __DIR__ . '/../base.php'; |
||||||
|
|
||||||
|
$selected = array_slice($argv, 1); |
||||||
|
|
||||||
|
$output = []; |
||||||
|
|
||||||
|
foreach ($selected as $key) { |
||||||
|
$output[$key] = tr($key); |
||||||
|
} |
||||||
|
|
||||||
|
fwrite(STDOUT, json_encode($output, JSON_UNESCAPED_UNICODE)); |
@ -0,0 +1,54 @@ |
|||||||
|
/* |
||||||
|
* This is a Webpack loader that loads the language data by running |
||||||
|
* dump_selected.php. |
||||||
|
*/ |
||||||
|
|
||||||
|
const { spawnSync } = require('child_process') |
||||||
|
const path = require('path') |
||||||
|
const selectedKeys = require('./js-keys') |
||||||
|
|
||||||
|
module.exports = function (source) { |
||||||
|
let child = spawnSync(path.resolve(__dirname, '_js-dump.php'), selectedKeys, { |
||||||
|
timeout: 1000 |
||||||
|
}) |
||||||
|
|
||||||
|
let data |
||||||
|
try { |
||||||
|
data = JSON.parse(child.stdout.toString().trim()) |
||||||
|
} catch (err) { |
||||||
|
console.error(`\x1b[31;1m[lang-loader] Failed to parse JSON:`) |
||||||
|
console.error(child.stdout.toString().trim()) |
||||||
|
console.error(`\x1b[m`) |
||||||
|
|
||||||
|
if (err) throw err |
||||||
|
} |
||||||
|
|
||||||
|
// adapted from webpack/loader-utils
|
||||||
|
let remainingRequest = this.remainingRequest |
||||||
|
if (!remainingRequest) { |
||||||
|
remainingRequest = this.loaders.slice(this.loaderIndex + 1) |
||||||
|
.map(obj => obj.request) |
||||||
|
.concat([this.resource]).join('!') |
||||||
|
} |
||||||
|
|
||||||
|
let currentRequest = this.currentRequest |
||||||
|
if (!currentRequest) { |
||||||
|
remainingRequest = this.loaders.slice(this.loaderIndex) |
||||||
|
.map(obj => obj.request) |
||||||
|
.concat([this.resource]).join('!') |
||||||
|
} |
||||||
|
|
||||||
|
let map = { |
||||||
|
version: 3, |
||||||
|
file: currentRequest, |
||||||
|
sourceRoot: '', |
||||||
|
sources: [remainingRequest], |
||||||
|
sourcesContent: [source], |
||||||
|
names: [], |
||||||
|
mappings: 'AAAA;AAAA' |
||||||
|
} |
||||||
|
|
||||||
|
this.callback(null, |
||||||
|
`/* Generated language file */\n` + |
||||||
|
`module.exports=${JSON.stringify(data)}\n`, map) |
||||||
|
} |
@ -0,0 +1,12 @@ |
|||||||
|
// define language keys used by JS here
|
||||||
|
module.exports = [ |
||||||
|
'wifi.connected_ip_is', |
||||||
|
'wifi.not_conn', |
||||||
|
'wifi.enter_passwd', |
||||||
|
'term_nav.fullscreen', |
||||||
|
'term_conn.connecting', |
||||||
|
'term_conn.waiting_content', |
||||||
|
'term_conn.disconnected', |
||||||
|
'term_conn.waiting_server', |
||||||
|
'term_conn.reconnecting' |
||||||
|
] |
Loading…
Reference in new issue