--此lua脚本由软件No1编写并提供支持
--This lua script is written by www.rjno1.com
--此脚本可以把osd中显示的文字信息切换为本地语言
-- This script can switch the text information displayed in osd to the local language
--此脚本不仅对MPV-EASY Player有效，对于mpv来说，此脚本可以较好和较完全的解决语言本地化问题
-- This script is not only valid for MPV-EASY Player. For mpv, this script can solve the language localization problem better and more completely.
--此脚本中重复的命令对MPV-EASY Player中的语言本地化并不会造成冲突,只会有轻微干扰或者无干扰，能成为有效的补充，比如你按下快捷键激发命令时。
--如果你发现有些命令会对使用会造成干扰，那么注释对应部分即可
--此脚本中有些命令默认就是注释状态，造成这个的原因有：
----1、命令可能不会产生效果 
----2、命令可能会对MPV-EASY Player造成较大的干扰，对mpv则没有 
----3、命令已经有了更好的写法
--如果你了解了这个脚本的功能，那么可以尝试取消这些注释，从而可以让播放器osd显示的语言本地化更加的完整。

local opts = require 'mp.options'
local osd_level_value = mp.get_property_osd("osd-level")

--默认设置
local settings = {
	language = "zh-cn" ,
}

--读取.conf设置文件中的设置
opts.read_options(settings, "local-language")



--loop-file的function
function loop_file_show_text(loop_file_fn, loop_file_fn_param)
	if (loop_file_fn_param == "yes" or loop_file_fn_param == "inf") then
			mp.command("show-text \"重复播放启用\"")
	elseif( loop_file_fn_param == "no") then
			mp.command("show-text \"重复播放禁用\"")
	else
			mp.command("show-text \"重复播放次数: ${loop-file}\"")
	end
end



--loop-playlist的function
function loop_playlist_show_text(loop_playlist_fn, loop_playlist_fn_param)
	if (loop_playlist_fn_param == "yes" or loop_playlist_fn_param == "inf") then
			mp.command("show-text \"循环播放启用\"")
	elseif( loop_playlist_fn_param == "no") then
			mp.command("show-text \"循环播放禁用\"")
	else
			mp.command("show-text \"循环播放次数: ${loop-playlist}\"")
	end
end



if settings.language =="zh-cn" and osd_level_value >= "1" then

		--视频打开后延迟一会在加载，防止有时候会出现文字很大的问题
		mp.add_timeout(2, function() 

			--注意mp.observe_property(name, type, fn)，type通常不建议使用string，建议使用none，因为：
			--If the type is none or nil, sporadic property change events are possible. This means the change
			--function fn can be called even if the property doesn't actually change.
			--比如：音量最大100%，当音量100%时，按下0，音量不变，依旧是100%，
			--如果是string，显示volume:100%,如果是none，依旧显示你修改后的
			mp.observe_property("contrast", "none", function() mp.command("show-text \"对比度: ${contrast}\"") end)
			mp.observe_property("brightness", "none", function() mp.command("show-text \"亮度: ${brightness}\"") end)
			mp.observe_property("saturation", "none", function() mp.command("show-text \"饱和度: ${saturation}\"") end)
			mp.observe_property("gamma", "none", function() mp.command("show-text \"伽马值: ${gamma}\"") end)
			
			--下面这条可能无效
			--mp.observe_property("speed", "none", function() mp.command("show-text \"播放倍速: ${speed}\"") end)
			
			--mp.observe_property("ontop", "none", function() mp.command("show-text \"置顶: ${ontop}\"") end)
			--mp.observe_property("sub", "none", function() mp.command("show-text \"字幕切换为: ${sub}\"") end)
			--mp.observe_property("audio", "none", function() mp.command("show-text \"音轨切换为: ${audio}\"") end)
			--mp.observe_property("panscan", "none", function() mp.command("show-text \"视频画面缩放: ${panscan}\"") end)
			--mp.observe_property("sub-scale", "none", function() mp.command("show-text \"字体缩放: ${sub-scale}\"") end)
			
			
			
			--下方3条会互相造成干扰， 解决方式：只开启其中一个或其中2个，或者改进这段代码
			--mp.observe_property("window-scale", "none", function() mp.command("show-text \"视频画面大小倍数 ${window-scale}\"") end)
			
			--使用string可以避免下面2条之间的干扰
			--mp.observe_property("video-aspect", "string", function() mp.command("show-text \"画面宽高比例 ${video-aspect}\"") end)
			--mp.observe_property("video-rotate", "none", function() mp.command("show-text \"画面旋转角度: ${video-rotate}\"") end)
			

			
			
			--mp.observe_property("loop-file", "string", loop_file_show_text)
			--下方这条和上方这条相同和一样有效，只是显示比较简单，上方这条要用string，不能用none
			----mp.observe_property("loop-file", "none", function() mp.command("show-text \"重复播放: ${loop-file}\"") end)
			
			--mp.observe_property("loop-playlist", "string", loop_playlist_show_text)
			--下方这条和上方这条相同和一样有效，只是显示比较简单，上方这条要用string，不能用none
			----mp.observe_property("loop-playlist", "none", function() mp.command("show-text \"循环播放: ${loop-playlist}\"") end)
			
			--注意：音量一定要写在最后一个，防止首次自动显示时出现非音量的文字信息，但有可能放在最后也不能解决问题
			mp.observe_property("volume", "none", function() mp.command("show-text \"音量:${volume}%\"") end)
		end)

end