Forked from the-unsoul/video-station-language-injection.js
Created
October 14, 2022 07:31
-
-
Save nhancv/b3d3e1943e71d5837db106534676e50c to your computer and use it in GitHub Desktop.
Inject a subtitle language into Synology - Video Station
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function() { | |
var synoLang; | |
var isSynoReady; | |
var additional = { | |
code : 'vie', // <== uses reference language list at the bottom and set the 'code' to the language you wanted | |
label: 'Tiếng Việt' // <== 'label' can be anything you wanted. i.e. if set to 'New lang 123' you will see 'New lang 123' in the list | |
} | |
var overrideSupportedLanguage = function () { | |
synoLang = SYNO.SDS.Utils.getSupportedLanguage(); | |
synoLang.push([additional.code, additional.label]) | |
SYNO.SDS.Utils.getSupportedLanguage = function () { | |
return synoLang; | |
} | |
} | |
var overrideSubtitleSet = function() { | |
SYNO.SDS.VideoStation2.Setting.AdvancedPanel.SubtitleSet.LANGUAGE_MAPPING[additional.code] = additional.code; | |
SYNO.SDS.VideoStation2.Setting.AdvancedPanel.SubtitleSet.EXTRA_LANGUAGE.push([additional.code, additional.label]); | |
} | |
var waitForSyno = setInterval(function () { | |
try { | |
var testAssignment = SYNO.SDS.VideoStation2.Setting.AdvancedPanel; | |
isSynoReady = true; | |
} catch (ex) {} | |
if (!isSynoReady) {return;} | |
clearInterval(waitForSyno); | |
overrideSubtitleSet() | |
overrideSupportedLanguage(); | |
console.log('[DONE] New language injected:', `'${additional.code}' '${additional.label}'`); | |
}, 500) | |
})(); | |
// this is refference for language support list in subscene | |
// 'Albanian' : {'id': 1, '3let': 'alb', '2let': 'sq', 'name': 'Albanian'}, | |
// 'Arabic' : {'id': 2, '3let': 'ara', '2let': 'ar', 'name': 'Arabic'}, | |
// 'Big 5 code' : {'id': 3, '3let': 'chi', '2let': 'zh', 'name': 'Chinese'}, | |
// 'Brazillian Portuguese': {'id': 4, '3let': 'por', '2let': 'pb', 'name': 'Brazilian Portuguese'}, | |
// 'Bulgarian' : {'id': 5, '3let': 'bul', '2let': 'bg', 'name': 'Bulgarian'}, | |
// 'Chinese BG code' : {'id': 7, '3let': 'chi', '2let': 'zh', 'name': 'Chinese'}, | |
// 'Croatian' : {'id': 8, '3let': 'hrv', '2let': 'hr', 'name': 'Croatian'}, | |
// 'Czech' : {'id': 9, '3let': 'cze', '2let': 'cs', 'name': 'Czech'}, | |
// 'Danish' : {'id': 10, '3let': 'dan', '2let': 'da', 'name': 'Danish'}, | |
// 'Dutch' : {'id': 11, '3let': 'dut', '2let': 'nl', 'name': 'Dutch'}, | |
// 'English' : {'id': 13, '3let': 'eng', '2let': 'en', 'name': 'English'}, | |
// 'Estonian' : {'id': 16, '3let': 'est', '2let': 'et', 'name': 'Estonian'}, | |
// 'Farsi/Persian' : {'id': 46, '3let': 'per', '2let': 'fa', 'name': 'Persian'}, | |
// 'Finnish' : {'id': 17, '3let': 'fin', '2let': 'fi', 'name': 'Finnish'}, | |
// 'French' : {'id': 18, '3let': 'fre', '2let': 'fr', 'name': 'French'}, | |
// 'German' : {'id': 19, '3let': 'ger', '2let': 'de', 'name': 'German'}, | |
// 'Greek' : {'id': 21, '3let': 'gre', '2let': 'el', 'name': 'Greek'}, | |
// 'Hebrew' : {'id': 22, '3let': 'heb', '2let': 'he', 'name': 'Hebrew'}, | |
// 'Hungarian' : {'id': 23, '3let': 'hun', '2let': 'hu', 'name': 'Hungarian'}, | |
// 'Icelandic' : {'id': 25, '3let': 'ice', '2let': 'is', 'name': 'Icelandic'}, | |
// 'Indonesian' : {'id': 44, '3let': 'ind', '2let': 'id', 'name': 'Indonesian'}, | |
// 'Italian' : {'id': 26, '3let': 'ita', '2let': 'it', 'name': 'Italian'}, | |
// 'Japanese' : {'id': 27, '3let': 'jpn', '2let': 'ja', 'name': 'Japanese'}, | |
// 'Korean' : {'id': 28, '3let': 'kor', '2let': 'ko', 'name': 'Korean'}, | |
// 'Lithuanian' : {'id': 43, '3let': 'lit', '2let': 'lt', 'name': 'Lithuanian'}, | |
// 'Malay' : {'id': 50, '3let': 'may', '2let': 'ms', 'name': 'Malay'}, | |
// 'Norwegian' : {'id': 30, '3let': 'nor', '2let': 'no', 'name': 'Norwegian'}, | |
// 'Polish' : {'id': 31, '3let': 'pol', '2let': 'pl', 'name': 'Polish'}, | |
// 'Portuguese' : {'id': 32, '3let': 'por', '2let': 'pt', 'name': 'Portuguese'}, | |
// 'Romanian' : {'id': 33, '3let': 'rum', '2let': 'ro', 'name': 'Romanian'}, | |
// 'Russian' : {'id': 34, '3let': 'rus', '2let': 'ru', 'name': 'Russian'}, | |
// 'Serbian' : {'id': 35, '3let': 'scc', '2let': 'sr', 'name': 'Serbian'}, | |
// 'Slovak' : {'id': 36, '3let': 'slo', '2let': 'sk', 'name': 'Slovak'}, | |
// 'Slovenian' : {'id': 37, '3let': 'slv', '2let': 'sl', 'name': 'Slovenian'}, | |
// 'Spanish' : {'id': 38, '3let': 'spa', '2let': 'es', 'name': 'Spanish'}, | |
// 'Swedish' : {'id': 39, '3let': 'swe', '2let': 'sv', 'name': 'Swedish'}, | |
// 'Thai' : {'id': 40, '3let': 'tha', '2let': 'th', 'name': 'Thai'}, | |
// 'Turkish' : {'id': 41, '3let': 'tur', '2let': 'tr', 'name': 'Turkish'}, | |
// 'Vietnamese' : {'id': 45, '3let': 'vie', '2let': 'vi', 'name': 'Vietnamese'} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment