diff --git a/.idea/.idea.ProjectLighthouse/.idea/indexLayout.xml b/.idea/.idea.ProjectLighthouse/.idea/indexLayout.xml index 022ac2e7..69ba74a2 100644 --- a/.idea/.idea.ProjectLighthouse/.idea/indexLayout.xml +++ b/.idea/.idea.ProjectLighthouse/.idea/indexLayout.xml @@ -12,6 +12,7 @@ ProjectLighthouse.sln.DotSettings.user README.md create-migration.sh + crowdin.yml docker-compose.yml global.json diff --git a/ProjectLighthouse.Localisation/BaseLayout.resx b/ProjectLighthouse.Localisation/BaseLayout.resx new file mode 100644 index 00000000..3734bd86 --- /dev/null +++ b/ProjectLighthouse.Localisation/BaseLayout.resx @@ -0,0 +1,46 @@ + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + + Home + A button on the header that takes you to the landing page. + + + + Users + A button on the header that takes you to the user listing. + + + + Photos + A button on the header that takes you to a list of user-uploaded photos. + + + + Levels + A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". + + \ No newline at end of file diff --git a/ProjectLighthouse.Localisation/ProjectLighthouse.Localisation.csproj b/ProjectLighthouse.Localisation/ProjectLighthouse.Localisation.csproj new file mode 100644 index 00000000..7905a768 --- /dev/null +++ b/ProjectLighthouse.Localisation/ProjectLighthouse.Localisation.csproj @@ -0,0 +1,17 @@ + + + + net6.0 + enable + enable + LBPUnion.ProjectLighthouse.Localisation + + + + + ResXFileCodeGenerator + BaseLayout.Designer.cs + + + + diff --git a/ProjectLighthouse.sln b/ProjectLighthouse.sln index 9f80122f..9f7d42c0 100644 --- a/ProjectLighthouse.sln +++ b/ProjectLighthouse.sln @@ -10,6 +10,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLighthouse.Tests.Gam EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLighthouse.Tests.WebsiteTests", "ProjectLighthouse.Tests.WebsiteTests\ProjectLighthouse.Tests.WebsiteTests.csproj", "{CF65EB5B-5364-4D2A-8639-F147A67F08E7}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectLighthouse.Localisation", "ProjectLighthouse.Localisation\ProjectLighthouse.Localisation.csproj", "{CDB81465-F758-4842-B843-F77ABEE7C3BF}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -29,6 +31,10 @@ Global {CF65EB5B-5364-4D2A-8639-F147A67F08E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CF65EB5B-5364-4D2A-8639-F147A67F08E7}.Debug|Any CPU.Build.0 = Debug|Any CPU {CF65EB5B-5364-4D2A-8639-F147A67F08E7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CDB81465-F758-4842-B843-F77ABEE7C3BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CDB81465-F758-4842-B843-F77ABEE7C3BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CDB81465-F758-4842-B843-F77ABEE7C3BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CDB81465-F758-4842-B843-F77ABEE7C3BF}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {AFC74569-B289-4ACC-B21C-313A3A62C017} = {D360C08E-EA47-43AC-A566-FDF413442980} diff --git a/ProjectLighthouse/Helpers/LocalisationHelper.cs b/ProjectLighthouse/Helpers/LocalisationHelper.cs new file mode 100644 index 00000000..f7d6d580 --- /dev/null +++ b/ProjectLighthouse/Helpers/LocalisationHelper.cs @@ -0,0 +1,4 @@ +namespace LBPUnion.ProjectLighthouse.Helpers; + +public static class LocalisationHelper +{} \ No newline at end of file diff --git a/ProjectLighthouse/ProjectLighthouse.csproj b/ProjectLighthouse/ProjectLighthouse.csproj index 3be87bf1..d0c22455 100644 --- a/ProjectLighthouse/ProjectLighthouse.csproj +++ b/ProjectLighthouse/ProjectLighthouse.csproj @@ -51,18 +51,22 @@ Always - - + + - + + + + + - - - - + + + + diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 00000000..6f4e10a3 --- /dev/null +++ b/crowdin.yml @@ -0,0 +1,116 @@ +# +# Choose file structure in Crowdin +# e.g. true or false +# +"preserve_hierarchy": true + +files: [ + { + # + # Source files filter + # e.g. "/resources/en/*.json" + # + "source": "/ProjectLighthouse.Localisation/*.resx", + + # + # Where translations will be placed + # e.g. "/resources/%two_letters_code%/%original_file_name%" + # + "translation": "/ProjectLighthouse.Localisation/%file_name%.%locale%.%file_extension%", + + # + # Files or directories for ignore + # e.g. ["/**/?.txt", "/**/[0-9].txt", "/**/*\?*.txt"] + # + #"ignore" : [], + + # + # The dest allows you to specify a file name in Crowdin + # e.g. "/messages.json" + # + #"dest" : "", + + # + # File type + # e.g. "json" + # + #"type" : "", + + # + # The parameter "update_option" is optional. If it is not set, after the files update the translations for changed strings will be removed. Use to fix typos and for minor changes in the source strings + # e.g. "update_as_unapproved" or "update_without_changes" + # + #"update_option" : "", + + # + # Start block (for XML only) + # + + # + # Defines whether to translate tags attributes. + # e.g. 0 or 1 (Default is 1) + # + # "translate_attributes" : 1, + + # + # Defines whether to translate texts placed inside the tags. + # e.g. 0 or 1 (Default is 1) + # + # "translate_content" : 1, + + # + # This is an array of strings, where each item is the XPaths to DOM element that should be imported + # e.g. ["/content/text", "/content/text[@value]"] + # + # "translatable_elements" : [], + + # + # Defines whether to split long texts into smaller text segments + # e.g. 0 or 1 (Default is 1) + # + # "content_segmentation" : 1, + + # + # End block (for XML only) + # + + # + # Start .properties block + # + + # + # Defines whether single quote should be escaped by another single quote or backslash in exported translations + # e.g. 0 or 1 or 2 or 3 (Default is 3) + # 0 - do not escape single quote; + # 1 - escape single quote by another single quote; + # 2 - escape single quote by backslash; + # 3 - escape single quote by another single quote only in strings containing variables ( {0} ). + # + # "escape_quotes" : 3, + + # + # Defines whether any special characters (=, :, ! and #) should be escaped by backslash in exported translations. + # e.g. 0 or 1 (Default is 0) + # 0 - do not escape special characters + # 1 - escape special characters by a backslash + # + # "escape_special_characters": 0 + # + + # + # End .properties block + # + + # + # Does the first line contain header? + # e.g. true or false + # + #"first_line_contains_header" : true, + + # + # for spreadsheets + # e.g. "identifier,source_phrase,context,uk,ru,fr" + # + # "scheme" : "", + } +] \ No newline at end of file