diff --git a/locale/af_ZA.ts b/locale/af_ZA.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/af_ZA.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/ar_SA.ts b/locale/ar_SA.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/ar_SA.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/be_BY.ts b/locale/be_BY.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/be_BY.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/ca_ES.ts b/locale/ca_ES.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/ca_ES.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/cs_CZ.ts b/locale/cs_CZ.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/cs_CZ.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/da_DK.ts b/locale/da_DK.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/da_DK.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/de_AT.ts b/locale/de_AT.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/de_AT.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/de_DE.ts b/locale/de_DE.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/de_DE.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/el_GR.ts b/locale/el_GR.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/el_GR.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/en_GB.ts b/locale/en_GB.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/en_GB.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/en_PT.ts b/locale/en_PT.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/en_PT.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/en_US.ts b/locale/en_US.ts index 85fc74e7..d9104699 100644 --- a/locale/en_US.ts +++ b/locale/en_US.ts @@ -129,7 +129,6 @@ export default { editing: "Editing {0}", owner: "{USER}'s Emote Set", owned: "Owned Emote Set", - modal: { selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", create_button: "Create @:common.object.emote_set", @@ -141,10 +140,8 @@ export default { channel_emotes: "Channel Emotes", editors: "Editors", roles: "Roles", - no_channel_emotes: "{0} does not have any emote on their {1} channel", no_channels: "{0} doesn't have any channels connected!", - card: { view_full_profile: "View Full Profile", }, @@ -169,7 +166,6 @@ export default { complete_step_one: "Continue", abuse_notice: "Abuse of the report feature may lead to your access being revoked.", }, - // Text that is relevant to the inbox inbox: { inbox: "Inbox", @@ -179,7 +175,6 @@ export default { important: "Important", }, unread_tag: "Unread", - // System inbox messages generic: { emote_listed: { diff --git a/locale/es_ES.ts b/locale/es_ES.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/es_ES.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/et_EE.ts b/locale/et_EE.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/et_EE.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/fa_IR.ts b/locale/fa_IR.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/fa_IR.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/fi_FI.ts b/locale/fi_FI.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/fi_FI.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/fr_FR.ts b/locale/fr_FR.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/fr_FR.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/ga_IE.ts b/locale/ga_IE.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/ga_IE.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/he_IL.ts b/locale/he_IL.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/he_IL.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/hu_HU.ts b/locale/hu_HU.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/hu_HU.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/it_IT.ts b/locale/it_IT.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/it_IT.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/ja_JP.ts b/locale/ja_JP.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/ja_JP.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/ka_GE.ts b/locale/ka_GE.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/ka_GE.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/kk_KZ.ts b/locale/kk_KZ.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/kk_KZ.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/ko_KR.ts b/locale/ko_KR.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/ko_KR.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/locale.json b/locale/locale.json index 8a6882ae..028640a3 100644 --- a/locale/locale.json +++ b/locale/locale.json @@ -1 +1,41 @@ -{ "en_US": "98cf56cc4032cd90814c73af2621851d9022427a233eaca86731461e4136fdb3" } +{ + "af_ZA": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "ar_SA": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "be_BY": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "ca_ES": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "cs_CZ": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "da_DK": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "de_AT": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "de_DE": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "el_GR": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "en_GB": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "en_PT": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "en_US": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "es_ES": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "et_EE": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "fa_IR": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "fi_FI": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "fr_FR": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "ga_IE": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "he_IL": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "hu_HU": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "it_IT": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "ja_JP": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "ka_GE": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "kk_KZ": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "ko_KR": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "nb_NO": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "nl_NL": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "nn_NO": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "pl_PL": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "pt_BR": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "pt_PT": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "ro_RO": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "ru_RU": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "sq_AL": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "sr_SP": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "sv_SE": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "tr_TR": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "uk_UA": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d", + "vi_VN": "52ef545b1ab15d2ff56109f13a72e43e6dfb9e3c4514430bcbceab2eb198bd0d" +} diff --git a/locale/nb_NO.ts b/locale/nb_NO.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/nb_NO.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/nl_NL.ts b/locale/nl_NL.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/nl_NL.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/nn_NO.ts b/locale/nn_NO.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/nn_NO.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/pl_PL.ts b/locale/pl_PL.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/pl_PL.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/pt_BR.ts b/locale/pt_BR.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/pt_BR.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/pt_PT.ts b/locale/pt_PT.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/pt_PT.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/ro_RO.ts b/locale/ro_RO.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/ro_RO.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/ru_RU.ts b/locale/ru_RU.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/ru_RU.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/sq_AL.ts b/locale/sq_AL.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/sq_AL.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/sr_SP.ts b/locale/sr_SP.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/sr_SP.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/sv_SE.ts b/locale/sv_SE.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/sv_SE.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/tr_TR.ts b/locale/tr_TR.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/tr_TR.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/uk_UA.ts b/locale/uk_UA.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/uk_UA.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +}; diff --git a/locale/vi_VN.ts b/locale/vi_VN.ts new file mode 100644 index 00000000..d9104699 --- /dev/null +++ b/locale/vi_VN.ts @@ -0,0 +1,240 @@ +export default { + locale: "English (United States)", + // Common / Repeated words and phrases + common: { + appName: "7TV", + appHost: "7tv.app", + supportEmail: "kathy{'@'}7tv.app", + learnMore: "Learn More", + more: "More", + retry: "Retry", + downloads: "Downloads", + features: "Features", + comments: "Comments", + search: "Search", + update: "Update", + report: "Report", + object: { + user: "User", + emote_set: "Emote Set", + emote: "Emote", + }, + }, + // Text that appears on the home page + home: { + slogan: "The Emote Platform for All", + app_description: "Manage hundreds of emotes for your Twitch or YouTube channels with ease", + why_app: "Why @:common.appName{'?'}", + download_browser: "Browser Extension", + download_mobile: "Mobile Apps", + download_misc: "Other Apps", + features: { + emote_sets: { + name: "Emote Sets", + detail: "Group emotes in customizable sets that can be shared with other users or quickly swapped onto your channel.", + }, + many_emote_slots: { + name: "Hundreds of emote slots", + detail: "Start with {0} slots, with a possible maximum of {1} and no paywall.", + }, + channel_emote_names: { + name: "Per-channel emote names", + detail: "Don't like the name given to an emote by its author? That's fine, you can change it for your channel only.", + }, + real_time: { + name: "Real-time", + detail: "Changing emotes in your channel happens instantly, for all viewers. No F5 required.", + }, + emote_versions: { + name: "Emote Versioning", + detail: "Swap between themed variants or update an emote to an improved version.", + }, + next_gen: { + name: "Next-gen image formats like WEBP and AVIF", + detail: "We use newer, more optimized image formats to reduce bandwidth usage.", + }, + source_available: { + name: "Source-available", + detail: "Our entire codebase is available on GitHub with a source-available license. Anyone can view and contribute.", + }, + }, + socials: { + discord: "Join @:common.appName on Discord", + discord_online_count: "{0} online now", + twitter: "Follow us on Twitter", + github: "Contribute", + }, + }, + // Navigation + nav: { + home: "Home", + about: "About", + emotes: "Emotes", + store: "Subscribe", + admin: "Admin", + sign_in: "Sign In", + }, + // Text that is relevant to emotes + emote: { + add: "Add Emote", + author: "Added by", + created_at: "Created", + versions: "Versions", + use: "Use Emote", + switch_version: "Switch to this version", + in_n_sets: "in {0} set | in {0} sets", + disable: "Disable Emote", + update: "Update", + report: "Report Emote", + makePrivate: "Make Private", + makeGlobal: "Make Global", + comments: "Comments", + channels: "Channels", + list: { + searching: "Searching", + emote_count: "{0} emotes", + no_emotes_listed: "No emotes found", + fetching_slowly: "Sorry, it seems this is taking a while", + }, + upload: { + emote_name: "Emote Name", + version_name: "Version Name", + version_description: "Version Description", + submit_emote: "Submit Emote", + create_emote_version: "Create Emote Version", + image_upload: "Image Upload", + accepted_formats: "Accepted Formats", + filetype: "File", + animation: "Animation", + transparency: "Transparency", + emote_details: "Emote Details", + version_details: "Version Details", + attribution: "Attribution", + original_creator: "Original Creator", + as_child: "You are creating a {IS_DIVERGED} version of {0}. ", + content_moderation: "Content Moderation", + half_transparency_tooltip: + "Pixels can only be fully transparent or fully opaque (no variable transparency)", + }, + }, + emote_set: { + create: "New @:common.object.emote_set", + select: "Select @:common.object.emote_set", + explain: { + section: "What are @:common.object.emote_set{'s'}?", + hint: "Emote Sets are a collection of emotes which can be bound to your channels or shared with other users.", + }, + no_space: "Slots Full", + none_selected: "No Set Selected", + editing: "Editing {0}", + owner: "{USER}'s Emote Set", + owned: "Owned Emote Set", + modal: { + selected_channel_count: "no channel selected | {0} channel selected | {0} channels selected", + create_button: "Create @:common.object.emote_set", + }, + }, + // Text that is relevant to users + user: { + emote_sets: "Emote Sets", + channel_emotes: "Channel Emotes", + editors: "Editors", + roles: "Roles", + no_channel_emotes: "{0} does not have any emote on their {1} channel", + no_channels: "{0} doesn't have any channels connected!", + card: { + view_full_profile: "View Full Profile", + }, + }, + store: {}, + // Text that is relating to the reporting system + reporting: { + report: "Report", + emote_reason: { + i_made_this: "I made this emote but it was uploaded by someone else", + duplicate: "This emote is a duplicate", + pornographic: "This emote contains pornographic or overly sexualized imagery", + violence_gore: "This emote displays extreme violence or gore", + i_appear_there: "This emote depicts me and I don't like it", + offensive: "I find this emote offensive", + other: "Something else", + }, + uncategorized_prompt: "What's the matter?", + details: "Details (additional info and/or evidence for your report)", + success: "Report submitted successfully", + notify: "You will be notified via the inbox once your report is handled or further information is requested.", + complete_step_one: "Continue", + abuse_notice: "Abuse of the report feature may lead to your access being revoked.", + }, + // Text that is relevant to the inbox + inbox: { + inbox: "Inbox", + tabs: { + all: "All Messages", + unread: "Unread", + important: "Important", + }, + unread_tag: "Unread", + // System inbox messages + generic: { + emote_listed: { + subject: "Emote Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was approved for listing \n +It will now be available on the Emote Directory and begin appearing on @:common.appHost{'.'} +`, + }, + emote_not_listed: { + subject: "Emote Not Approved for Listing", + content: ` +# Your emote "{EMOTE_NAME}" was rejected +It will not be available via the public Emote Directory or visible on @:common.appHost, +but will remain available for users with the link. +`, + }, + emote_ownership_claim_request: { + subject: "Invitation to claim ownership of an emote", + content: ` +## {OWNER_DISPLAY_NAME} wants you to become the owner of '{EMOTE_NAME}' + +[View Emote]({EMOTE_URL}) + +**[Accept Request]({EMOTE_CLAIM_URL})** | [Decline Request]({EMOTE_DECLINE_URL}) + `, + }, + client_banned: { + subject: "You've been banned", + reason: { + pornographic_content: "", + }, + content: ` +# Account Banned +Your access to @:common.appName is now limited.

+### Reason for this action +{BAN_REASON}

+### Restrictions Applied
+{EFFECT_NO_PERMISSIONS} +{EFFECT_NO_AUTH} +{EFFECT_NO_OWNERSHIP} +{EFFECT_MEMORY_HOLE} + +
This decision expires **{BAN_EXPIRE_AT}**. +_If you believe this is a mistake, please email @:common.supportEmail{'.'}_ +`, + effect: { + no_permissions: "* You may no longer interact with the app", + no_auth: "* You may no longer sign in", + no_ownership: "* Any content you created will no longer be available", + memory_hole: "* You won't be visible to other users", + ip_blocked: "* Your IP is blocked from accessing all @:common.appName services", + }, + }, + }, + }, + // 404 Messages + notFound: { + troll_despair: "We couldn't find it", + doctor_wtf: "The hell's this?", + pot_friend: "I'm a pot, friend", + }, +};