feat: N 开头公历转农历 #565
This commit is contained in:
parent
064df83015
commit
47a8766440
@ -240,10 +240,11 @@ punctuator:
|
|||||||
recognizer:
|
recognizer:
|
||||||
import_preset: default # 从 default.yaml 继承通用的
|
import_preset: default # 从 default.yaml 继承通用的
|
||||||
patterns: # 再增加方案专有的:
|
patterns: # 再增加方案专有的:
|
||||||
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
|
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
|
||||||
reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查
|
reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查
|
||||||
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
||||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
||||||
|
gregorian_to_lunar: "^N[0-9]{1,8}" # 响应 lua_translator@lunar 公历转农历,输入 N20240115 得到「二〇二四年腊月初五」,脚本将自动获取第 2 个字符作为触发前缀
|
||||||
|
|
||||||
|
|
||||||
# 从 default 继承快捷键
|
# 从 default 继承快捷键
|
||||||
|
@ -242,10 +242,11 @@ punctuator:
|
|||||||
recognizer:
|
recognizer:
|
||||||
import_preset: default # 从 default.yaml 继承通用的
|
import_preset: default # 从 default.yaml 继承通用的
|
||||||
patterns: # 再增加方案专有的:
|
patterns: # 再增加方案专有的:
|
||||||
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
|
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
|
||||||
reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查
|
reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查
|
||||||
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
||||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
||||||
|
gregorian_to_lunar: "^N[0-9]{1,8}" # 响应 lua_translator@lunar 公历转农历,输入 N20240115 得到「二〇二四年腊月初五」,脚本将自动获取第 2 个字符作为触发前缀
|
||||||
|
|
||||||
|
|
||||||
# 从 default 继承快捷键
|
# 从 default 继承快捷键
|
||||||
|
@ -240,10 +240,11 @@ punctuator:
|
|||||||
recognizer:
|
recognizer:
|
||||||
import_preset: default # 从 default.yaml 继承通用的
|
import_preset: default # 从 default.yaml 继承通用的
|
||||||
patterns: # 再增加方案专有的:
|
patterns: # 再增加方案专有的:
|
||||||
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
|
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
|
||||||
reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查
|
reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查
|
||||||
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
||||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
||||||
|
gregorian_to_lunar: "^N[0-9]{1,8}" # 响应 lua_translator@lunar 公历转农历,输入 N20240115 得到「二〇二四年腊月初五」,脚本将自动获取第 2 个字符作为触发前缀
|
||||||
|
|
||||||
|
|
||||||
# 从 default 继承快捷键
|
# 从 default 继承快捷键
|
||||||
|
@ -244,10 +244,11 @@ punctuator:
|
|||||||
recognizer:
|
recognizer:
|
||||||
import_preset: default # 从 default.yaml 继承通用的
|
import_preset: default # 从 default.yaml 继承通用的
|
||||||
patterns: # 再增加方案专有的:
|
patterns: # 再增加方案专有的:
|
||||||
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
|
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
|
||||||
reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查
|
reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查
|
||||||
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
||||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
||||||
|
gregorian_to_lunar: "^N[0-9]{1,8}" # 响应 lua_translator@lunar 公历转农历,输入 N20240115 得到「二〇二四年腊月初五」,脚本将自动获取第 2 个字符作为触发前缀
|
||||||
|
|
||||||
|
|
||||||
# 从 default 继承快捷键
|
# 从 default 继承快捷键
|
||||||
|
@ -244,10 +244,11 @@ punctuator:
|
|||||||
recognizer:
|
recognizer:
|
||||||
import_preset: default # 从 default.yaml 继承通用的
|
import_preset: default # 从 default.yaml 继承通用的
|
||||||
patterns: # 再增加方案专有的:
|
patterns: # 再增加方案专有的:
|
||||||
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
|
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
|
||||||
reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查
|
reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查
|
||||||
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
||||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
||||||
|
gregorian_to_lunar: "^N[0-9]{1,8}" # 响应 lua_translator@lunar 公历转农历,输入 N20240115 得到「二〇二四年腊月初五」,脚本将自动获取第 2 个字符作为触发前缀
|
||||||
|
|
||||||
|
|
||||||
# 从 default 继承快捷键
|
# 从 default 继承快捷键
|
||||||
|
@ -242,10 +242,11 @@ punctuator:
|
|||||||
recognizer:
|
recognizer:
|
||||||
import_preset: default # 从 default.yaml 继承通用的
|
import_preset: default # 从 default.yaml 继承通用的
|
||||||
patterns: # 再增加方案专有的:
|
patterns: # 再增加方案专有的:
|
||||||
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
|
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
|
||||||
reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查
|
reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查
|
||||||
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
||||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
||||||
|
gregorian_to_lunar: "^N[0-9]{1,8}" # 响应 lua_translator@lunar 公历转农历,输入 N20240115 得到「二〇二四年腊月初五」,脚本将自动获取第 2 个字符作为触发前缀
|
||||||
|
|
||||||
|
|
||||||
# 从 default 继承快捷键
|
# 从 default 继承快捷键
|
||||||
|
@ -549,7 +549,7 @@ local function Date2LunarDate(Gregorian)
|
|||||||
Month = tonumber(Gregorian.sub(Gregorian, 5, 6))
|
Month = tonumber(Gregorian.sub(Gregorian, 5, 6))
|
||||||
Day = tonumber(Gregorian.sub(Gregorian, 7, 8))
|
Day = tonumber(Gregorian.sub(Gregorian, 7, 8))
|
||||||
if Year > 2100 or Year < 1899 or Month > 12 or Month < 1 or Day < 1 or Day > 31 or string.len(Gregorian) < 8 then
|
if Year > 2100 or Year < 1899 or Month > 12 or Month < 1 or Day < 1 or Day > 31 or string.len(Gregorian) < 8 then
|
||||||
return "无效日期"
|
return "无效日期", "无效日期"
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 获取两百年内的农历数据
|
-- 获取两百年内的农历数据
|
||||||
@ -642,17 +642,29 @@ local function Date2LunarDate(Gregorian)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- 农历
|
-- 农历
|
||||||
|
-- 从 lunar: nl 获取农历触发关键字(双拼默认为 lunar)
|
||||||
|
-- 从 recognizer/patterns/gregorian_to_lunar 获取第 2 个字符作为公历转农历的触发前缀,默认为 N
|
||||||
local function translator(input, seg, env)
|
local function translator(input, seg, env)
|
||||||
local date1, date2 = Date2LunarDate(os.date("%Y%m%d"))
|
|
||||||
env.lunar_key_word = env.lunar_key_word or
|
env.lunar_key_word = env.lunar_key_word or
|
||||||
(env.engine.schema.config:get_string(env.name_space:gsub('^*', '')) or 'nl')
|
(env.engine.schema.config:get_string(env.name_space:gsub('^*', '')) or 'nl')
|
||||||
|
env.gregorian_to_lunar = env.gregorian_to_lunar or
|
||||||
|
(env.engine.schema.config:get_string('recognizer/patterns/gregorian_to_lunar'):sub(2, 2) or 'N')
|
||||||
if input == env.lunar_key_word then
|
if input == env.lunar_key_word then
|
||||||
local lunar_date = Candidate("", seg.start, seg._end, date1, "")
|
local date1, date2 = Date2LunarDate(os.date("%Y%m%d"))
|
||||||
lunar_date.quality = 999
|
|
||||||
yield(lunar_date)
|
|
||||||
local lunar_ymd = (Candidate("", seg.start, seg._end, date2, ""))
|
local lunar_ymd = (Candidate("", seg.start, seg._end, date2, ""))
|
||||||
lunar_ymd.quality = 999
|
lunar_ymd.quality = 999
|
||||||
yield(lunar_ymd)
|
yield(lunar_ymd)
|
||||||
|
local lunar_date = Candidate("", seg.start, seg._end, date1, "")
|
||||||
|
lunar_date.quality = 999
|
||||||
|
yield(lunar_date)
|
||||||
|
elseif env.gregorian_to_lunar ~= '' and input:sub(1, 1) == env.gregorian_to_lunar then
|
||||||
|
local date1, date2 = Date2LunarDate(input:sub(2))
|
||||||
|
local lunar_ymd = (Candidate("", seg.start, seg._end, date2, ""))
|
||||||
|
lunar_ymd.quality = 999
|
||||||
|
yield(lunar_ymd)
|
||||||
|
local lunar_date = Candidate("", seg.start, seg._end, date1, "")
|
||||||
|
lunar_date.quality = 999
|
||||||
|
yield(lunar_date)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -203,10 +203,11 @@ punctuator:
|
|||||||
recognizer:
|
recognizer:
|
||||||
import_preset: default # 从 default.yaml 继承通用的
|
import_preset: default # 从 default.yaml 继承通用的
|
||||||
patterns: # 再增加方案专有的:
|
patterns: # 再增加方案专有的:
|
||||||
punct: "^v([0-9]|10|[A-Za-z]+)$" # 响应 symbols_v.yaml 的 symbols,用 'v' 替换 '/'
|
punct: "^v([0-9]|10|[A-Za-z]+)$" # 响应 symbols_v.yaml 的 symbols,用 'v' 替换 '/'
|
||||||
reverse_lookup: "^u[a-z]+$" # 响应两分拼字的反查
|
reverse_lookup: "^u[a-z]+$" # 响应两分拼字的反查
|
||||||
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
unicode: "^U[a-f0-9]+" # 响应 lua_translator@unicode 脚本将自动获取第 2 个字符作为触发前缀
|
||||||
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
number: "^R[0-9]+[.]?[0-9]*" # 响应 lua_translator@number_translator 脚本将自动获取第 2 个字符作为触发前缀
|
||||||
|
gregorian_to_lunar: "^N[0-9]{1,8}" # 响应 lua_translator@lunar 公历转农历,输入 N20240115 得到「二〇二四年腊月初五」,脚本将自动获取第 2 个字符作为触发前缀
|
||||||
|
|
||||||
|
|
||||||
# 从 default 继承快捷键
|
# 从 default 继承快捷键
|
||||||
|
Loading…
Reference in New Issue
Block a user