public static LanguageDataObject GetTranslation(string language, ITranslatableObject obj) { LanguageDataObject translation; TryGetTranslation(out translation, language, obj); return(translation); }
public static LanguageDataObject GetTranslation(GameClient client, ITranslatableObject obj) { LanguageDataObject translation; TryGetTranslation(out translation, client, obj); return(translation); }
/// <summary> /// Reads any translations stored in the annotations of the current instance of an ITranslatableObject, /// and applies them to the model culture. /// </summary> /// <param name="obj"></param> public static void LoadTranslations(this ITranslatableObject obj, bool includeChildren = false) { var tn = obj.GetAnnotation("TabularEditor_TranslatedNames"); if (tn != null) { obj.TranslatedNames.CopyFrom(DeserializeTranslations(tn)); } var td = obj.GetAnnotation("TabularEditor_TranslatedDescriptions"); if (td != null) { obj.TranslatedDescriptions.CopyFrom(DeserializeTranslations(td)); } var tdf = obj.GetAnnotation("TabularEditor_TranslatedDisplayFolders"); if (tdf != null && obj is IFolderObject) { (obj as IFolderObject).TranslatedDisplayFolders.CopyFrom(DeserializeTranslations(tdf)); } if (includeChildren && obj is ITabularObjectContainer) { foreach (var child in (obj as ITabularObjectContainer).GetChildren().OfType <ITranslatableObject>()) { child.LoadTranslations(true); } } }
/// <summary> /// Reads any translations stored in the annotations of the current instance of an ITranslatableObject, /// and applies them to the model culture. /// </summary> /// <param name="obj"></param> public static void LoadTranslations(this ITranslatableObject obj, bool includeChildren = false) { var tn = obj.GetAnnotation(AnnotationHelper.ANN_NAMES); if (tn != null) { obj.TranslatedNames.CopyFrom(DeserializeTranslations(tn)); obj.RemoveAnnotation(AnnotationHelper.ANN_NAMES, false); } var td = obj.GetAnnotation(AnnotationHelper.ANN_DESCRIPTIONS); if (td != null) { obj.TranslatedDescriptions.CopyFrom(DeserializeTranslations(td)); obj.RemoveAnnotation(AnnotationHelper.ANN_DESCRIPTIONS, false); } var tdf = obj.GetAnnotation(AnnotationHelper.ANN_DISPLAYFOLDERS); if (tdf != null && obj is IFolderObject) { (obj as IFolderObject).TranslatedDisplayFolders.CopyFrom(DeserializeTranslations(tdf)); obj.RemoveAnnotation(AnnotationHelper.ANN_DISPLAYFOLDERS, false); } if (includeChildren && obj is ITabularObjectContainer) { foreach (var child in (obj as ITabularObjectContainer).GetChildren().OfType <ITranslatableObject>()) { child.LoadTranslations(true); } } }
public static void CopyTranslationsFrom(this ITranslatableObject target, ITranslatableObject src) { target.TranslatedNames.CopyFrom(src.TranslatedNames); target.TranslatedDescriptions.CopyFrom(src.TranslatedDescriptions); if (target is IFolderObject && src is IFolderObject) { ((IFolderObject)target).TranslatedDisplayFolders.CopyFrom(((IFolderObject)src).TranslatedDisplayFolders); } }
private static void ApplyTrans(string cultureName, ITranslatableObject obj, JToken trans, bool overwrite) { if (overwrite || string.IsNullOrEmpty(obj.TranslatedNames[cultureName])) { obj.TranslatedNames[cultureName] = trans.Value <string>("translatedCaption"); } if (overwrite || string.IsNullOrEmpty(obj.TranslatedDescriptions[cultureName])) { obj.TranslatedDescriptions[cultureName] = trans.Value <string>("translatedDescription"); } if (obj is IFolderObject) { var o = obj as IFolderObject; if (overwrite || string.IsNullOrEmpty(o.TranslatedDisplayFolders[cultureName])) { o.TranslatedDisplayFolders[cultureName] = trans.Value <string>("translatedDisplayFolder"); } } }
/// <summary> /// Stores all translations on the current instance of an ITranslatableObject as annotations on the object. /// Translations can later be retrieved using the LoadTranslations() extension method. /// </summary> /// <param name="obj"></param> public static void SaveTranslations(this ITranslatableObject obj, bool includeChildren = false) { if (!obj.TranslatedNames.IsEmpty) { obj.SetAnnotation("TabularEditor_TranslatedNames", obj.TranslatedNames.ToJson(), false); } if (!obj.TranslatedDescriptions.IsEmpty) { obj.SetAnnotation("TabularEditor_TranslatedDescriptions", obj.TranslatedDescriptions.ToJson(), false); } if (obj is IFolderObject && !(obj as IFolderObject).TranslatedDisplayFolders.IsEmpty) { obj.SetAnnotation("TabularEditor_TranslatedDisplayFolders", (obj as IFolderObject).TranslatedDisplayFolders.ToJson(), false); } if (includeChildren && obj is ITabularObjectContainer) { foreach (var child in (obj as ITabularObjectContainer).GetChildren().OfType <ITranslatableObject>()) { child.SaveTranslations(true); } } }
/// <summary> /// Stores all translations on the current instance of an ITranslatableObject as annotations on the object. /// Translations can later be retrieved using the LoadTranslations() extension method. /// </summary> /// <param name="obj"></param> public static void SaveTranslations(this ITranslatableObject obj, bool includeChildren = false) { if (!obj.TranslatedNames.IsEmpty) { obj.SetAnnotation(AnnotationHelper.ANN_NAMES, obj.TranslatedNames.ToJson(), false); } if (!obj.TranslatedDescriptions.IsEmpty) { obj.SetAnnotation(AnnotationHelper.ANN_DESCRIPTIONS, obj.TranslatedDescriptions.ToJson(), false); } if (obj is IFolderObject && !(obj as IFolderObject).TranslatedDisplayFolders.IsEmpty) { obj.SetAnnotation(AnnotationHelper.ANN_DISPLAYFOLDERS, (obj as IFolderObject).TranslatedDisplayFolders.ToJson(), false); } if (includeChildren && obj is ITabularObjectContainer) { foreach (var child in (obj as ITabularObjectContainer).GetChildren().OfType <ITranslatableObject>()) { child.SaveTranslations(true); } } }
public static LanguageDataObject GetTranslation(string language, ITranslatableObject obj) { LanguageDataObject translation; TryGetTranslation(out translation, language, obj); return translation; }
public static LanguageDataObject GetTranslation(this GamePlayer player, ITranslatableObject obj) { return player.Client.GetTranslation(obj); }
public static LanguageDataObject GetTranslation(this GameClient client, ITranslatableObject obj) { LanguageDataObject translation; TryGetTranslation(out translation, client, obj); return translation; }
public virtual string GetName(int article, bool firstLetterUppercase, string lang, ITranslatableObject obj) { switch (lang) { case "EN": { return GetName(article, firstLetterUppercase); } default: { if (obj is GameNPC) { var translation = (DBLanguageNPC)LanguageMgr.GetTranslation(lang, obj); if (translation != null) return translation.Name; } return GetName(article, firstLetterUppercase);; } } }
public static bool TryGetTranslation(out LanguageDataObject translation, string language, ITranslatableObject obj) { if (obj == null) { translation = null; return(false); } if (Util.IsEmpty(language) || language == DefaultLanguage /*Use the objects base data (e.g. NPC.Name)*/) { translation = null; return(false); } translation = GetLanguageDataObject(language, obj.TranslationId, obj.TranslationIdentifier); return(translation == null ? false : true); }
public static bool TryGetTranslation(out LanguageDataObject translation, GameClient client, ITranslatableObject obj) { if (client == null) { translation = null; return(false); } return(TryGetTranslation(out translation, (client.Account == null ? String.Empty : client.Account.Language), obj)); }
public static LanguageDataObject GetTranslation(GamePlayer player, ITranslatableObject obj) { return(GetTranslation(player.Client, obj)); }
public static bool TryGetTranslation(out LanguageDataObject translation, GameClient client, ITranslatableObject obj) { if (client == null) { translation = null; return false; } return TryGetTranslation(out translation, (client.Account == null ? String.Empty : client.Account.Language), obj); }
public static bool TryGetTranslation(out LanguageDataObject translation, string language, ITranslatableObject obj) { if (obj == null) { translation = null; return false; } if (Util.IsEmpty(language) || language == DefaultLanguage /*Use the objects base data (e.g. NPC.Name)*/) { translation = null; return false; } translation = GetLanguageDataObject(language, obj.TranslationId, obj.TranslationIdentifier); return (translation == null ? false : true); }
/// <summary> /// Returns a translation for the given client of the given translatable object. /// </summary> /// <param name="obj">The object you request a translation for.</param> /// <param name="client">The client you want the translation for.</param> /// <returns>DataObject or 'null' if nothing was found.</returns> public static DataObject GetTranslation(GameClient client, ITranslatableObject obj) { if (client == null || obj == null) return null; DataObject result = null; if (!Util.IsEmpty(obj.TranslationId)) { eObjColKey key = eObjColKey.eNULL; if (obj is AbstractArea) key = eObjColKey.eArea; else if (obj is GameStaticItem) { if (obj is WorldInventoryItem) return result; // Not supported yet else key = eObjColKey.eStaticObject; } else if (obj is GameNPC) key = eObjColKey.eNPC; else if (obj is Zone) key = eObjColKey.eZone; // No more checks, get the result as quick as possible - if exist // and all parameters / variables are valid! try { result = m_objectTranslations[key][client.Account.Language.ToUpper()][obj.TranslationId]; } catch { } } return result; }