├── Unity Project ├── ProjectSettings │ ├── ProjectVersion.txt │ ├── editorsettings.asset │ ├── ClusterInputManager.asset │ ├── EditorBuildSettings.asset │ ├── NetworkManager.asset │ ├── TimeManager.asset │ ├── AudioManager.asset │ ├── TagManager.asset │ ├── DynamicsManager.asset │ ├── UnityConnectSettings.asset │ ├── Physics2DSettings.asset │ ├── NavMeshAreas.asset │ ├── GraphicsSettings.asset │ ├── QualitySettings.asset │ ├── InputManager.asset │ └── ProjectSettings.asset ├── UnityPackageManager │ └── manifest.json ├── Assets │ ├── Examples │ │ ├── Language │ │ │ ├── Resources │ │ │ │ ├── Languages │ │ │ │ │ ├── Swedish.txt │ │ │ │ │ ├── French.txt │ │ │ │ │ ├── German.txt │ │ │ │ │ ├── English.txt │ │ │ │ │ ├── English.txt.meta │ │ │ │ │ ├── French.txt.meta │ │ │ │ │ ├── German.txt.meta │ │ │ │ │ └── Swedish.txt.meta │ │ │ │ └── Languages.meta │ │ │ ├── language_example.unity.meta │ │ │ ├── Resources.meta │ │ │ ├── LanguageButtons.cs.meta │ │ │ ├── LanguageTimeParameter.cs.meta │ │ │ ├── LanguageTimeParameter.cs │ │ │ ├── LanguageButtons.cs │ │ │ └── language_example.unity │ │ └── Language.meta │ ├── Plugins.meta │ ├── Examples.meta │ └── Plugins │ │ ├── Farrokh Games.meta │ │ └── Farrokh Games │ │ ├── Language.meta │ │ └── Language │ │ ├── Editor.meta │ │ ├── Editor │ │ ├── Tests.meta │ │ └── Tests │ │ │ ├── LanguageContainerTests.cs.meta │ │ │ ├── LanguageManagerTests.cs.meta │ │ │ ├── LanguageManagerTests.cs │ │ │ └── LanguageContainerTests.cs │ │ ├── Language.cs.meta │ │ ├── LanguageContainer.cs.meta │ │ ├── LanguageManager.cs.meta │ │ ├── AutoLanguageBehaviour.cs.meta │ │ ├── AutoLanguageBehaviour.cs │ │ ├── Language.cs │ │ ├── LanguageManager.cs │ │ └── LanguageContainer.cs └── .vscode │ └── settings.json ├── Documentation ├── language.gif └── unittests.png ├── .gitignore ├── LICENSE └── README.md /Unity Project/ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2017.2.0f3 2 | -------------------------------------------------------------------------------- /Unity Project/UnityPackageManager/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | } 4 | } 5 | -------------------------------------------------------------------------------- /Documentation/language.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarrokhGames/Language/HEAD/Documentation/language.gif -------------------------------------------------------------------------------- /Documentation/unittests.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarrokhGames/Language/HEAD/Documentation/unittests.png -------------------------------------------------------------------------------- /Unity Project/ProjectSettings/editorsettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarrokhGames/Language/HEAD/Unity Project/ProjectSettings/editorsettings.asset -------------------------------------------------------------------------------- /Unity Project/ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /Unity Project/ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: [] 8 | -------------------------------------------------------------------------------- /Unity Project/ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /Unity Project/Assets/Examples/Language/Resources/Languages/Swedish.txt: -------------------------------------------------------------------------------- 1 | # Det här är en kommentar 2 | example.header=Ett enkelt språksystem för Unity3D 3 | example.time=Klockan är just nu {0}, och allt är fantastiskt! -------------------------------------------------------------------------------- /Unity Project/Assets/Examples/Language/Resources/Languages/French.txt: -------------------------------------------------------------------------------- 1 | # Ceci est un commentaire 2 | example.header=Un système de langage simple pour Unity3D 3 | example.time=Il est maintenant {0} et tout est incroyable! -------------------------------------------------------------------------------- /Unity Project/Assets/Examples/Language/Resources/Languages/German.txt: -------------------------------------------------------------------------------- 1 | # Das ist ein kommentar 2 | example.header=Ein einfaches sprachsystem für Unity3D 3 | example.time=Die Zeit ist jetzt {0} und alles ist fantastisch! -------------------------------------------------------------------------------- /Unity Project/Assets/Plugins.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f22fbf61a79eb45ffab157e3722001ed 3 | folderAsset: yes 4 | timeCreated: 1509798980 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Unity Project/ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /Unity Project/Assets/Examples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 27b798a67493846598d729796850a1f1 3 | folderAsset: yes 4 | timeCreated: 1509799008 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Unity Project/Assets/Examples/Language/Resources/Languages/English.txt: -------------------------------------------------------------------------------- 1 | # This is a comment 2 | example.header=A simple language system for Unity3D 3 | example.time=The time is currently {0}, and everything is awesome! 4 | example.fallbackonly=This text is only available in english -------------------------------------------------------------------------------- /Unity Project/Assets/Examples/Language.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dc0085f6fae3f4d078c97dc276e309da 3 | folderAsset: yes 4 | timeCreated: 1509799027 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Unity Project/Assets/Examples/Language/language_example.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9cee2f06a8924044b8bf74cd1401d45 3 | timeCreated: 1509809181 4 | licenseType: Free 5 | DefaultImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Unity Project/Assets/Plugins/Farrokh Games.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6c943fddf330b4ead87a182d677ae884 3 | folderAsset: yes 4 | timeCreated: 1509798985 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Unity Project/Assets/Examples/Language/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 71bbfb7fc24fe4959bbea0be8f0e9e20 3 | folderAsset: yes 4 | timeCreated: 1509799033 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Unity Project/Assets/Examples/Language/Resources/Languages/English.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2f772e81ab94f4a8b8f97b7ae9a3b44b 3 | timeCreated: 1509799067 4 | licenseType: Free 5 | TextScriptImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Unity Project/Assets/Examples/Language/Resources/Languages/French.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a18db05d80a9947d9968f6728e719f04 3 | timeCreated: 1509799067 4 | licenseType: Free 5 | TextScriptImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Unity Project/Assets/Examples/Language/Resources/Languages/German.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 001afd09fd7fc4278a1d36ab5b1f4949 3 | timeCreated: 1509799067 4 | licenseType: Free 5 | TextScriptImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Unity Project/Assets/Examples/Language/Resources/Languages/Swedish.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b622bc71df2184369a6c8e7855ed47d1 3 | timeCreated: 1509799067 4 | licenseType: Free 5 | TextScriptImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Unity Project/Assets/Plugins/Farrokh Games/Language.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f0260cdfa85b7460f9486025ba9afec0 3 | folderAsset: yes 4 | timeCreated: 1509798997 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Unity Project/Assets/Examples/Language/Resources/Languages.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5569401cbac8148bbaabed63d1bc044f 3 | folderAsset: yes 4 | timeCreated: 1509809456 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Unity Project/Assets/Plugins/Farrokh Games/Language/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3083cca3063b24dbdab884e71fc0c837 3 | folderAsset: yes 4 | timeCreated: 1509799228 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Unity Project/Assets/Plugins/Farrokh Games/Language/Editor/Tests.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 98883e9faad1a44619bab380a889aaed 3 | folderAsset: yes 4 | timeCreated: 1509799233 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Unity Project/Assets/Examples/Language/LanguageButtons.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4767e164c1925412692738a1f3621b91 3 | timeCreated: 1509810540 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Unity Project/Assets/Examples/Language/LanguageTimeParameter.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c413dffc07b114284896e40fe8688d11 3 | timeCreated: 1509809609 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Unity Project/Assets/Plugins/Farrokh Games/Language/Language.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 530ecb09a8bc44f0a93d29cd92f2bef0 3 | timeCreated: 1509799426 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Unity Project/Assets/Plugins/Farrokh Games/Language/LanguageContainer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 67cb04627426442adb47f388f0eef734 3 | timeCreated: 1509804523 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Unity Project/Assets/Plugins/Farrokh Games/Language/LanguageManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c323c4e1f68494f5ba174d5cec460817 3 | timeCreated: 1509820489 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Unity Project/Assets/Plugins/Farrokh Games/Language/AutoLanguageBehaviour.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 12664d2381fab4763921093e77fa552a 3 | timeCreated: 1509799426 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Unity Project/Assets/Plugins/Farrokh Games/Language/Editor/Tests/LanguageContainerTests.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3585b2fc156244dc59f7e9a2ba8249da 3 | timeCreated: 1509804523 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Unity Project/Assets/Plugins/Farrokh Games/Language/Editor/Tests/LanguageManagerTests.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a2c15f0480db64b2b9f12c9a8e363248 3 | timeCreated: 1509820489 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Unity Project/ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 0 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /Unity Project/ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /Unity Project/Assets/Examples/Language/LanguageTimeParameter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine.UI; 3 | 4 | namespace FarrokhGames.Language 5 | { 6 | public class LanguageTimeParameter : AutoLanguageBehaviour 7 | { 8 | protected override void UpdateText(Text text, string identifier) 9 | { 10 | UpdateText(); 11 | } 12 | 13 | void Update() 14 | { 15 | UpdateText(); 16 | } 17 | 18 | private void UpdateText() 19 | { 20 | var time = DateTime.Now.ToString("HH:mm:ss"); 21 | _text.text = Language.Get(_identifier, time); 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # =============== # 2 | # Unity generated # 3 | # =============== # 4 | Temp/ 5 | Obj/ 6 | UnityGenerated/ 7 | Library/ 8 | Unity Project/Temp/ 9 | Unity Project/Obj/ 10 | Unity Project/UnityGenerated/ 11 | Unity Project/Library/ 12 | 13 | # ===================================== # 14 | # Visual Studio / MonoDevelop generated # 15 | # ===================================== # 16 | ExportedObj/ 17 | *.svd 18 | *.userprefs 19 | *.csproj 20 | *.pidb 21 | *.suo 22 | *.sln 23 | *.user 24 | *.unityproj 25 | *.booproj 26 | 27 | # ============ # 28 | # OS generated # 29 | # ============ # 30 | .DS_Store 31 | .DS_Store? 32 | ._* 33 | .Spotlight-V100 34 | .Trashes 35 | Icon? 36 | ehthumbs.db 37 | Thumbs.db -------------------------------------------------------------------------------- /Unity Project/ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_EnablePCM: 1 18 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 19 | m_AutoSimulation: 1 20 | m_AutoSyncTransforms: 1 21 | -------------------------------------------------------------------------------- /Unity Project/ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | m_Enabled: 0 7 | m_TestMode: 0 8 | m_TestEventUrl: 9 | m_TestConfigUrl: 10 | m_TestInitMode: 0 11 | CrashReportingSettings: 12 | m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes 13 | m_NativeEventUrl: https://perf-events.cloud.unity3d.com/symbolicate 14 | m_Enabled: 0 15 | m_CaptureEditorExceptions: 1 16 | UnityPurchasingSettings: 17 | m_Enabled: 0 18 | m_TestMode: 0 19 | UnityAnalyticsSettings: 20 | m_Enabled: 0 21 | m_InitializeOnStartup: 1 22 | m_TestMode: 0 23 | m_TestEventUrl: 24 | m_TestConfigUrl: 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Farrokh Games 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Unity Project/Assets/Plugins/Farrokh Games/Language/AutoLanguageBehaviour.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | 4 | namespace FarrokhGames.Language 5 | { 6 | /// 7 | /// Behaviour for automatically localizing a UnityEngine.UI.Text, 8 | /// using its initial value as an identifier, when the language changes. 9 | /// 10 | public class AutoLanguageBehaviour : MonoBehaviour 11 | { 12 | protected Text _text; 13 | protected string _identifier; 14 | 15 | void Awake() 16 | { 17 | _text = GetComponent(); 18 | _identifier = _text.text; 19 | } 20 | 21 | void OnEnable() 22 | { 23 | Language.OnLanguageChanged += HandleLanguageChanged; 24 | HandleLanguageChanged(); 25 | } 26 | 27 | void OnDisable() 28 | { 29 | Language.OnLanguageChanged -= HandleLanguageChanged; 30 | } 31 | 32 | private void HandleLanguageChanged() 33 | { 34 | UpdateText(_text, _identifier); 35 | } 36 | 37 | protected virtual void UpdateText(Text text, string identifier) 38 | { 39 | text.text = Language.Get(identifier); 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /Unity Project/ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_AutoSimulation: 1 23 | m_QueriesHitTriggers: 1 24 | m_QueriesStartInColliders: 1 25 | m_ChangeStopsCallbacks: 0 26 | m_CallbacksOnDisable: 1 27 | m_AutoSyncTransforms: 1 28 | m_AlwaysShowColliders: 0 29 | m_ShowColliderSleep: 1 30 | m_ShowColliderContacts: 0 31 | m_ShowColliderAABB: 0 32 | m_ContactArrowScale: 0.2 33 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 34 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 35 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 36 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 37 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 38 | -------------------------------------------------------------------------------- /Unity Project/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.exclude": 3 | { 4 | "**/.DS_Store":true, 5 | "**/.git":true, 6 | "**/.gitignore":true, 7 | "**/.gitmodules":true, 8 | "**/*.booproj":true, 9 | "**/*.pidb":true, 10 | "**/*.suo":true, 11 | "**/*.user":true, 12 | "**/*.userprefs":true, 13 | "**/*.unityproj":true, 14 | "**/*.dll":true, 15 | "**/*.exe":true, 16 | "**/*.pdf":true, 17 | "**/*.mid":true, 18 | "**/*.midi":true, 19 | "**/*.wav":true, 20 | "**/*.gif":true, 21 | "**/*.ico":true, 22 | "**/*.jpg":true, 23 | "**/*.jpeg":true, 24 | "**/*.png":true, 25 | "**/*.psd":true, 26 | "**/*.tga":true, 27 | "**/*.tif":true, 28 | "**/*.tiff":true, 29 | "**/*.3ds":true, 30 | "**/*.3DS":true, 31 | "**/*.fbx":true, 32 | "**/*.FBX":true, 33 | "**/*.lxo":true, 34 | "**/*.LXO":true, 35 | "**/*.ma":true, 36 | "**/*.MA":true, 37 | "**/*.obj":true, 38 | "**/*.OBJ":true, 39 | "**/*.asset":true, 40 | "**/*.cubemap":true, 41 | "**/*.flare":true, 42 | "**/*.mat":true, 43 | "**/*.meta":true, 44 | "**/*.prefab":true, 45 | "**/*.unity":true, 46 | "build/":true, 47 | "Build/":true, 48 | "Library/":true, 49 | "library/":true, 50 | "obj/":true, 51 | "Obj/":true, 52 | "ProjectSettings/":true, 53 | "temp/":true, 54 | "Temp/":true 55 | } 56 | } -------------------------------------------------------------------------------- /Unity Project/Assets/Examples/Language/LanguageButtons.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | 6 | namespace FarrokhGames.Language 7 | { 8 | public class LanguageButtons : MonoBehaviour 9 | { 10 | [SerializeField] private Button _prefabButton; 11 | 12 | private Dictionary _buttons; 13 | 14 | void Awake() 15 | { 16 | _buttons = new Dictionary(); 17 | foreach (var language in Language.AllLanguages) 18 | { 19 | var btn = GameObject.Instantiate(_prefabButton.gameObject, Vector3.zero, Quaternion.identity, transform).GetComponent