83 lines
2.8 KiB
JavaScript
83 lines
2.8 KiB
JavaScript
// ===========================================================================
|
|
// Asshat-Gaming Roleplay
|
|
// https://github.com/VortrexFTW/gtac_asshat_rp
|
|
// Copyright (c) 2020 Asshat-Gaming (https://asshatgaming.com)
|
|
// ---------------------------------------------------------------------------
|
|
// FILE: translate.js
|
|
// DESC: Provides translation functions
|
|
// TYPE: Server (JavaScript)
|
|
// ===========================================================================
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
function translateMessage(messageText, fromLanguageId, toLanguageId) {
|
|
let translatedText = "";
|
|
|
|
let thisTranslationURL = formatTranslationURL(messageText, fromLanguageId, toLanguageId);
|
|
httpGet(
|
|
thisTranslationURL,
|
|
"",
|
|
function(data) {
|
|
data = toString(data).substr(0, toString(data).lastIndexOf("}")+1);
|
|
let translationData = JSON.parse(data);
|
|
//this.translatedText = translationData.responseData.translatedText;
|
|
addTranslationToCache(messageText, translationData.responseData.translatedText, fromLanguageId, toLanguageId);
|
|
return translationData.responseData.translatedText;
|
|
},
|
|
function(data) {
|
|
}
|
|
);
|
|
|
|
return this.translatedText;
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
function addTranslationToCache(originalText, translatedText, fromLanguageId, toLanguageId) {
|
|
getServerData().translation.cache[fromLanguageId][toLanguageId].push([originalText, translatedText]);
|
|
return true;
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
function formatTranslationURL(originalText, fromLanguageId, toLanguageId) {
|
|
return getServerData().translation.translationBaseURL.format(encodeURI(originalText), getLanguageShortCode(fromLanguageId), getLanguageShortCode(toLanguageId));
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
function getLanguageShortCode(languageId) {
|
|
return getServerData().translation.languages[languageId][1];
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
function getLanguageFullName(languageId) {
|
|
return getServerData().translation.languages[languageId][0];
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
function getLanguageIdFromFullName(languageName) {
|
|
let languages = getServerData().translation.languages;
|
|
for(let i in languages) {
|
|
if(languages[i][0] == languageName) {
|
|
return i;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
function getLanguageIdFromShortCode(languageShortCode) {
|
|
let languages = getServerData().translation.languages;
|
|
for(let i in languages) {
|
|
if(languages[i][1] == languageShortCode) {
|
|
return i;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|