Add mpv config
This commit is contained in:
parent
5e0be74606
commit
709a064053
106 changed files with 42838 additions and 0 deletions
72
mpv/scripts/uosc/lib/char_conv.lua
Executable file
72
mpv/scripts/uosc/lib/char_conv.lua
Executable file
|
@ -0,0 +1,72 @@
|
|||
require('lib/text')
|
||||
|
||||
local char_dir = mp.get_script_directory() .. '/char-conv/'
|
||||
local data = {}
|
||||
|
||||
local languages = get_languages()
|
||||
for i = #languages, 1, -1 do
|
||||
lang = languages[i]
|
||||
if (lang == 'en') then
|
||||
data = {}
|
||||
else
|
||||
table_assign(data, get_locale_from_json(char_dir .. lang:lower() .. '.json'))
|
||||
end
|
||||
end
|
||||
|
||||
local romanization = {}
|
||||
|
||||
local function get_romanization_table()
|
||||
for k, v in pairs(data) do
|
||||
for _, char in utf8_iter(v) do
|
||||
romanization[char] = k
|
||||
end
|
||||
end
|
||||
end
|
||||
get_romanization_table()
|
||||
|
||||
function need_romanization()
|
||||
return next(romanization) ~= nil
|
||||
end
|
||||
|
||||
function char_conv(chars, use_ligature, has_separator)
|
||||
local separator = has_separator or ' '
|
||||
local length = 0
|
||||
local char_conv, sp, cache = {}, {}, {}
|
||||
local chars_length = utf8_length(chars)
|
||||
local concat = table.concat
|
||||
for _, char in utf8_iter(chars) do
|
||||
if use_ligature then
|
||||
if #char == 1 then
|
||||
char_conv[#char_conv + 1] = char
|
||||
else
|
||||
char_conv[#char_conv + 1] = romanization[char] or char
|
||||
end
|
||||
else
|
||||
length = length + 1
|
||||
if #char <= 2 then
|
||||
if (char ~= ' ' and length ~= chars_length) then
|
||||
cache[#cache + 1] = romanization[char] or char
|
||||
elseif (char == ' ' or length == chars_length) then
|
||||
if length == chars_length then
|
||||
cache[#cache + 1] = romanization[char] or char
|
||||
end
|
||||
sp[#sp + 1] = concat(cache)
|
||||
itable_clear(cache)
|
||||
end
|
||||
else
|
||||
if next(cache) ~= nil then
|
||||
sp[#sp + 1] = concat(cache)
|
||||
itable_clear(cache)
|
||||
end
|
||||
sp[#sp + 1] = romanization[char] or char
|
||||
end
|
||||
end
|
||||
end
|
||||
if use_ligature then
|
||||
return concat(char_conv)
|
||||
else
|
||||
return concat(sp, separator)
|
||||
end
|
||||
end
|
||||
|
||||
return char_conv
|
Loading…
Add table
Add a link
Reference in a new issue