feat: Add brainrot locale

This commit is contained in:
Jesse Wierzbinski 2024-12-07 23:05:26 +01:00
parent 2ceee4827f
commit c3a2e5e850
No known key found for this signature in database
26 changed files with 355 additions and 36 deletions

View file

@ -28,7 +28,6 @@ import { Ellipsis, Heart, Quote, Repeat, Reply } from "lucide-vue-next";
import { toast } from "vue-sonner"; import { toast } from "vue-sonner";
import { Button } from "~/components/ui/button"; import { Button } from "~/components/ui/button";
import * as m from "~/paraglide/messages.js"; import * as m from "~/paraglide/messages.js";
import { languageTag } from "~/paraglide/runtime";
import { SettingIds } from "~/settings"; import { SettingIds } from "~/settings";
import { confirmModalService } from "../modals/composable"; import { confirmModalService } from "../modals/composable";
import Menu from "./menu.vue"; import Menu from "./menu.vue";
@ -143,7 +142,7 @@ const unreblog = async () => {
const numberFormat = (number = 0) => const numberFormat = (number = 0) =>
number !== 0 number !== 0
? new Intl.NumberFormat(languageTag(), { ? new Intl.NumberFormat(getLanguageTag(), {
notation: "compact", notation: "compact",
compactDisplay: "short", compactDisplay: "short",
maximumFractionDigits: 1, maximumFractionDigits: 1,

View file

@ -43,7 +43,6 @@ import type { Attachment, Emoji, Status } from "@versia/client/types";
import { TriangleAlert } from "lucide-vue-next"; import { TriangleAlert } from "lucide-vue-next";
import { Button } from "~/components/ui/button"; import { Button } from "~/components/ui/button";
import * as m from "~/paraglide/messages.js"; import * as m from "~/paraglide/messages.js";
import { languageTag } from "~/paraglide/runtime";
import { type BooleanSetting, SettingIds } from "~/settings"; import { type BooleanSetting, SettingIds } from "~/settings";
import { Alert, AlertDescription, AlertTitle } from "../ui/alert"; import { Alert, AlertDescription, AlertTitle } from "../ui/alert";
import Attachments from "./attachments.vue"; import Attachments from "./attachments.vue";
@ -78,7 +77,7 @@ const isOverflowing = computed(() => {
const characterCount = plainContent?.length; const characterCount = plainContent?.length;
const formattedCharacterCount = characterCount const formattedCharacterCount = characterCount
? new Intl.NumberFormat(languageTag()).format(characterCount) ? new Intl.NumberFormat(getLanguageTag()).format(characterCount)
: undefined; : undefined;
</script> </script>

View file

@ -50,7 +50,6 @@ import type {
UseTimeAgoUnitNamesDefault, UseTimeAgoUnitNamesDefault,
} from "@vueuse/core"; } from "@vueuse/core";
import { AtSign, Globe, Lock, LockOpen } from "lucide-vue-next"; import { AtSign, Globe, Lock, LockOpen } from "lucide-vue-next";
import { languageTag } from "~/paraglide/runtime";
import { SettingIds } from "~/settings"; import { SettingIds } from "~/settings";
import Avatar from "../profiles/avatar.vue"; import Avatar from "../profiles/avatar.vue";
import SmallCard from "../profiles/small-card.vue"; import SmallCard from "../profiles/small-card.vue";
@ -90,7 +89,7 @@ const timeAgo = useTimeAgo(createdAt, {
invalid: "", invalid: "",
} as UseTimeAgoMessages<UseTimeAgoUnitNamesDefault>, } as UseTimeAgoMessages<UseTimeAgoUnitNamesDefault>,
}); });
const fullTime = new Intl.DateTimeFormat(languageTag(), { const fullTime = new Intl.DateTimeFormat(getLanguageTag(), {
dateStyle: "medium", dateStyle: "medium",
timeStyle: "short", timeStyle: "short",
}).format(createdAt); }).format(createdAt);

View file

@ -25,7 +25,6 @@
<script lang="ts" setup> <script lang="ts" setup>
import { CalendarDays } from "lucide-vue-next"; import { CalendarDays } from "lucide-vue-next";
import * as m from "~/paraglide/messages.js"; import * as m from "~/paraglide/messages.js";
import { languageTag } from "~/paraglide/runtime";
const { creationDate } = defineProps<{ const { creationDate } = defineProps<{
creationDate: Date; creationDate: Date;
@ -34,7 +33,7 @@ const { creationDate } = defineProps<{
followingCount: number; followingCount: number;
}>(); }>();
const formattedCreationDate = new Intl.DateTimeFormat(languageTag(), { const formattedCreationDate = new Intl.DateTimeFormat(getLanguageTag(), {
month: "long", month: "long",
year: "numeric", year: "numeric",
}).format(creationDate); }).format(creationDate);

View file

@ -37,7 +37,7 @@
<DropdownMenuGroup v-if="identity"> <DropdownMenuGroup v-if="identity">
<DropdownMenuItem :as="NuxtLink" :href="`/@${identity.account.username}`"> <DropdownMenuItem :as="NuxtLink" :href="`/@${identity.account.username}`">
<BadgeCheck /> <BadgeCheck />
{{ m.factual_awful_hare_drip() }} {{ m.factual_arable_jurgen_endure() }}
</DropdownMenuItem> </DropdownMenuItem>
</DropdownMenuGroup> </DropdownMenuGroup>
<DropdownMenuSeparator /> <DropdownMenuSeparator />

View file

@ -33,13 +33,13 @@ const route = useRoute();
<Separator orientation="vertical" class="mr-2 h-4" /> <Separator orientation="vertical" class="mr-2 h-4" />
<Breadcrumb v-if="route.meta.breadcrumbs"> <Breadcrumb v-if="route.meta.breadcrumbs">
<BreadcrumbList> <BreadcrumbList>
<template v-for="(breadcrumb, index) of route.meta.breadcrumbs"> <template v-for="(breadcrumb, index) of route.meta.breadcrumbs()">
<BreadcrumbItem class="hidden md:block"> <BreadcrumbItem class="hidden md:block">
<component :is="breadcrumb.href ? BreadcrumbLink : BreadcrumbPage" :href="breadcrumb.href"> <component :is="breadcrumb.href ? BreadcrumbLink : BreadcrumbPage" :href="breadcrumb.href">
{{ breadcrumb.text }} {{ breadcrumb.text }}
</component> </component>
</BreadcrumbItem> </BreadcrumbItem>
<BreadcrumbSeparator v-if="index !== (route.meta.breadcrumbs.length - 1)" <BreadcrumbSeparator v-if="index !== (route.meta.breadcrumbs().length - 1)"
class="hidden md:block" /> class="hidden md:block" />
</template> </template>
</BreadcrumbList> </BreadcrumbList>

View file

@ -3,5 +3,5 @@ import { SettingIds } from "~/settings";
export const useLanguage = () => { export const useLanguage = () => {
const lang = useSetting(SettingIds.Language); const lang = useSetting(SettingIds.Language);
return computed(() => lang.value.value as "en" | "fr"); return computed(() => lang.value.value as "en" | "fr" | "en-rot");
}; };

2
index.d.ts vendored
View file

@ -1,6 +1,6 @@
declare module "#app" { declare module "#app" {
interface PageMeta { interface PageMeta {
breadcrumbs?: { breadcrumbs?: () => {
text: string; text: string;
href?: string; href?: string;
}[]; }[];

319
messages/en-rot.json Normal file
View file

@ -0,0 +1,319 @@
{
"$schema": "https://inlang.com/schema/inlang-message-format",
"bland_chunky_sparrow_propel": "Castle",
"lost_trick_dog_grace": "Exposed",
"crazy_game_parrot_pave": "Sigma",
"real_tame_moose_greet": "Beta",
"that_patchy_mare_snip": "Death Threats",
"patchy_seemly_hound_grace": "Decisions",
"factual_arable_jurgen_endure": "Persona",
"tough_clean_wolf_gleam": "Canthal Tilt",
"legal_best_tadpole_rise": "Behaviour",
"novel_trite_sloth_adapt": "Pepe Emojos",
"safe_green_mink_cook": "Roles",
"short_zippy_felix_kick": "Sigma Server",
"top_active_ocelot_cure": "A Sigma Server instance",
"trite_real_sawfish_drum": "Navigation",
"close_short_kitten_coax": "More",
"salty_aloof_turkey_nudge": "Tip it out",
"quaint_low_felix_pave": "Update",
"sunny_pink_hyena_walk": "Add persona",
"sharp_big_mallard_reap": "Go to therapy",
"honest_few_baboon_pop": "Register",
"spicy_loved_giraffe_empower": "Skibidi Actions",
"cool_dark_tapir_belong": "Copy NPC name",
"yummy_moving_scallop_sail": "Copy API data",
"sunny_zany_jellyfish_pop": "Copy ID",
"ago_new_pelican_drip": "Copy link",
"solid_witty_zebra_walk": "Copy link (in ohio)",
"active_trite_lark_inspire": "Open in ohio",
"spare_wild_mole_intend": "Mute",
"misty_soft_sparrow_vent": "Block",
"slow_chunky_chipmunk_hush": "Refresh",
"great_few_jaguar_rise": "Report",
"flat_nice_worm_dream": "Copied to clipboard",
"ornate_tidy_coyote_grow": "Muting NPC...",
"empty_smug_raven_bloom": "Blocking NPC...",
"real_every_macaw_wish": "Requesting refresh...",
"many_cool_fox_love": "Persona refreshed",
"gross_fancy_platypus_seek": "Joined",
"real_gray_stork_seek": "Rizzes",
"teal_helpful_parakeet_hike": "Fanum taxing",
"aloof_royal_samuel_startle": "Fanum taxed",
"brief_upper_otter_cuddle": "Fanum rebate",
"weak_bright_larva_grasp": "Requested",
"lazy_major_loris_grasp": "Fanum tax",
"honest_jolly_shell_blend": "This NPC is a Sigma developer.",
"nice_bad_grizzly_coax": "Sigma Developer",
"merry_red_shrimp_bump": "Automated",
"sweet_mad_jannes_create": "This persona is not operated as living entity.",
"many_fair_capybara_imagine": "Fanum tax NPC",
"cuddly_even_tern_loop": "Fanum tax",
"soft_bold_ant_attend": "Cancel",
"quick_basic_peacock_bubble": "Fanum taxing NPC...",
"awake_quick_cuckoo_smile": "NPC Fanum taxed",
"funny_aloof_swan_loop": "Fanum rebate NPC",
"cute_polite_oryx_blend": "Fanum rebate",
"big_safe_guppy_mix": "Fanum rebating NPC...",
"misty_level_stingray_expand": "NPC fanum rebated",
"witty_heroic_trout_cry": "Uploaded by you",
"cuddly_such_swallow_hush": "Rename",
"tense_quick_cod_favor": "Cook",
"slimy_awful_florian_sail": "Enter a new shortcode",
"teary_antsy_panda_aid": "Edit",
"teary_tame_gull_bless": "Updating shortcode...",
"gaudy_lime_bison_adore": "Shortcode updated.",
"weary_away_liger_zip": "Cooking pepe...",
"crisp_whole_canary_tear": "Pepe cooked.",
"mellow_yummy_jannes_cuddle": "Are you sure you want to fanum tax {acct}?",
"white_best_dolphin_catch": "Are you sure you want to fanum rebate {acct}?",
"bright_late_osprey_renew": "Banner",
"great_level_lamb_sway": "Recommended size: over 1500x500px",
"safe_icy_bulldog_quell": "Avatar",
"aware_quiet_opossum_catch": "Recommended size: 400x400px",
"mild_known_mallard_jolt": "Display Name",
"lime_dry_skunk_loop": "Custom Pepes can be used here.",
"neat_silly_dog_prosper": "NPC name",
"petty_plane_tadpole_earn": "Changing this will break all links to your skibidi.",
"next_caring_ladybug_hack": "Bio",
"stale_just_anaconda_earn": "Markdown and custom Pepes are supported.",
"aqua_mealy_toucan_pride": "Custom Fields",
"front_north_eel_gulp": "Add field",
"gaudy_each_opossum_play": "Mark persona as bot",
"grassy_acidic_gadfly_cure": "Is this persona sending automated messages?",
"dirty_moving_shark_emerge": "Enable fanum tax requests",
"bright_fun_mouse_boil": "Will require approval for new fanum taxers.",
"red_vivid_cuckoo_spark": "Allow persona discovery",
"plain_zany_donkey_dart": "Allow your persona to be found in search results.",
"jolly_noble_sloth_breathe": "Updating skibidi...",
"tough_alive_niklas_promise": "No changes",
"spry_honest_kestrel_arrive": "Skibidi updated",
"civil_icy_ant_mend": "Banner must be less than {size} bytes",
"zippy_caring_raven_edit": "Avatar must be less than {size} bytes",
"still_upper_otter_dine": "NPC name can only contain lowercase letters, numbers, underscores and hyphens",
"aware_house_dolphin_win": "Must be at least 3 characters long",
"weary_fresh_dragonfly_bless": "Must be a valid email address",
"sunny_novel_otter_glow": "Must be at least 3 characters long",
"fluffy_soft_wolf_cook": "Email (or NPC name)",
"livid_bright_wallaby_quiz": "Weener",
"fuzzy_sea_moth_absorb": "Sign in",
"tidy_tidy_cow_cut": "Or continue with",
"slow_these_kestrel_sail": "Accept",
"weary_steep_yak_embrace": "Reject",
"cool_slimy_coyote_affirm": "Accepting fanum tax request...",
"busy_awful_mouse_jump": "Fanum tax request accepted.",
"front_sunny_penguin_flip": "Rejecting fanum tax request...",
"green_flat_mayfly_trust": "Fanum tax request rejected.",
"large_vivid_horse_catch": "mogged",
"top_cute_bison_nudge": "Blocking NPC...",
"main_weary_racoon_peek": "NPC blocked",
"calm_icy_weasel_twirl": "Cook rizz",
"gray_fun_toucan_slide": "Are you sure you want to cook this rizz?",
"royal_best_tern_transform": "Cook",
"new_funny_fox_boil": "Cooking rizz...",
"green_tasty_bumblebee_beam": "Rizz cooked",
"many_misty_parakeet_fall": "Rizz Actions",
"front_lime_grizzly_persist": "Edit",
"wise_crazy_eel_honor": "Copy API data",
"dizzy_alive_wombat_bump": "Copy ID",
"slimy_livid_rabbit_belong": "Copy link",
"inner_pink_mare_renew": "Copy link (in ohio)",
"calm_fuzzy_thrush_soar": "Open in ohio",
"real_green_clownfish_pet": "Cook and redraft",
"zippy_key_antelope_drop": "Cook",
"chunky_dry_gull_sing": "Report",
"bald_vexed_firefox_startle": "Block NPC",
"clean_yummy_owl_reside": "Click to copy",
"livid_tangy_lionfish_clasp": "Sensitive content",
"sour_seemly_bird_hike": "This content is sensitive",
"bald_direct_turtle_win": "Show",
"known_flaky_cockroach_dash": "Hide",
"that_misty_mule_arrive": "Show less",
"lazy_honest_mammoth_bump": "Show more",
"dark_spare_goldfish_charm": "{count} characters",
"drab_tense_turtle_comfort": "Reply",
"vexed_fluffy_clownfish_dance": "Unmew",
"royal_close_samuel_scold": "Mew",
"lime_neat_ox_stab": "Unmog",
"aware_helpful_marlin_drop": "Mog",
"true_shy_jackal_drip": "Quote",
"busy_merry_cowfish_absorb": "Actions",
"slimy_least_ray_aid": "Mew rizz",
"stale_new_ray_jolt": "Are you sure you want to mew this rizz?",
"slimy_candid_tiger_read": "Mewing rizz...",
"mealy_slow_buzzard_commend": "Rizz mewed",
"odd_strong_halibut_prosper": "Unmewed rizz",
"slow_blue_parrot_savor": "Are you sure you want to unmewed this rizz?",
"busy_active_leopard_strive": "Unmewing rizz...",
"fresh_direct_bear_affirm": "Rizz unmewed",
"best_mellow_llama_surge": "Mog rizz",
"salty_plain_mallard_gaze": "Are you sure you want to mog this rizz?",
"late_sunny_cobra_scold": "Mogging rizz...",
"weird_moving_hawk_lift": "Rizz mogged",
"main_fancy_octopus_loop": "Unmog rizz",
"odd_alive_swan_express": "Are you sure you want to unmog this rizz?",
"white_sharp_gorilla_embrace": "Unmogging rizz...",
"royal_polite_moose_catch": "Rizz unmogged",
"mean_mean_badger_inspire": "Value",
"antsy_whole_alligator_blink": "Confirm",
"game_tough_seal_adore": "Mention someone",
"plane_born_koala_hope": "Enable Markdown",
"blue_ornate_coyote_tickle": "Insert pepe",
"top_patchy_earthworm_vent": "Attach a file",
"frail_broad_mallard_dart": "Mark as sensitive",
"gaudy_strong_puma_slide": "Save",
"free_teal_bulldog_learn": "Send",
"last_mean_peacock_zip": "Can be seen by anyone.",
"funny_slow_jannes_walk": "Unlisted",
"grassy_empty_raven_startle": "Private",
"pretty_bold_baboon_wave": "Direct",
"grand_strong_gibbon_race": "Can be seen by anyone with the link.",
"white_teal_ostrich_yell": "Can only be seen by your fanum taxers.",
"lucky_mean_robin_link": "Can only be seen by mentioned NPCs.",
"wise_late_fireant_walk": "Loading rizz data...",
"loved_busy_mantis_slide": "Reply",
"tired_grassy_vulture_forgive": "Reply to this rizz",
"solid_slow_angelfish_pave": "Compose",
"livid_livid_nils_snip": "Quote this rizz",
"brief_cool_capybara_fear": "Compose a new rizz",
"chunky_dull_marlin_trip": "Compose",
"steep_suave_fish_snap": "No more data.",
"muddy_bland_shark_accept": "You've scrolled so far, there's nothing left to show.",
"petty_honest_fish_stir": "Either you're all caught up or there's nothing to show.",
"fine_arable_lemming_fold": "There's nothing to show here.",
"gaudy_bland_gorilla_talk": "Load More",
"fancy_this_wasp_renew": "Your session has expired",
"real_weird_deer_stop": "You have been logged out. Please log in again.",
"sunny_quick_lionfish_flip": "Not signed in",
"brave_known_pelican_drip": "This page requires you to be authenticated. Please sign in to continue.",
"chunky_awake_mallard_grow": "Rizz",
"steep_sour_warthog_aim": "Loading",
"tough_nice_ox_drum": "Skibidi",
"noble_cute_ocelot_aim": "Register",
"novel_fine_stork_snap": "Log in to your persona.",
"smug_main_whale_snip": "Enter your credentials for <code>{host}</code>.",
"aware_awful_crow_spur": "Here's your code",
"mushy_soft_lizard_propel": "You have signed in successfully.",
"short_arable_leopard_zap": "Paste the following code into your app:",
"spare_aqua_warthog_mend": "Authorization Code",
"fresh_broad_cockroach_radiate": "Authorize “{application}”?",
"gross_antsy_kangaroo_succeed": "You are signing in to <b>{application}</b> with your persona.",
"hour_close_giraffe_mop": "This allows <b>{application}</b> to perform the above actions.",
"last_spare_polecat_reside": "Authorize",
"lower_factual_frog_evoke": "Authorization",
"awake_ago_capybara_kick": "$VERB your persona information",
"teary_zesty_racoon_transform": "$VERB your block list",
"whole_flaky_nuthatch_rush": "$VERB your bookmarks",
"still_spicy_lionfish_quell": "$VERB your favourites",
"away_mean_dolphin_empower": "$VERB your filters",
"sleek_empty_penguin_radiate": "$VERB your fanum taxed",
"every_silly_racoon_lift": "$VERB your lists",
"top_careful_scallop_clip": "$VERB your mutes",
"this_short_bulldog_walk": "$VERB your death threats",
"fresh_odd_rook_forgive": "Perform searches",
"witty_whole_capybara_pull": "$VERB your rizzes",
"agent_warm_javelina_blink": "Edit your conversations",
"dirty_red_jellyfish_ascend": "Upload media",
"crisp_vivid_seahorse_tend": "Report NPCs",
"teary_such_jay_fade": "Read and write",
"smug_safe_warthog_dare": "Read",
"loose_large_blackbird_peek": "Write",
"late_mean_capybara_fade": "Success",
"brave_acidic_lobster_fetch": "Your weener has been reset. You can now log in with your new weener.",
"every_tangy_koala_persist": "Back to front page",
"good_plane_gazelle_glow": "Your weener has been reset by an administrator. Please change it here.",
"east_loud_lobster_explore": "Info",
"solid_slow_platypus_talk": "Enter your new weener below. Make sure to put it in a weener manager.",
"tired_green_sloth_evoke": "Reset your weener",
"true_male_gadfly_stab": "New weener",
"awful_cozy_jannes_rise": "Confirm weener",
"noisy_round_skate_yell": "Reset",
"smart_bold_macaw_aid": "Must be at least {count} characters long",
"dry_smug_goldfish_promise": "Must be at most {count} characters long",
"candid_fancy_leopard_prosper": "Weeners do not match",
"arable_arable_herring_lead": "Reset Weener",
"broad_whole_herring_reside": "Decisions",
"tasty_late_termite_sew": "Persona",
"actual_mean_cow_dare": "Persona Decisions",
"suave_smart_mantis_climb": "Pepes",
"lucky_suave_myna_adore": "Ask your administrator to add some Pepes.",
"actual_steep_llama_rest": "No Pepes found.",
"mild_many_dolphin_mend": "Pepe Decisions",
"lucky_ago_rat_pinch": "Uncategorized",
"empty_awful_lark_dart": "NPC not found.",
"clean_even_mayfly_tap": "Check for typos or try again later.",
"vexed_each_falcon_enjoy": "Error",
"wide_topical_vole_walk": "Create a persona",
"keen_clean_nils_slurp": "NPC name",
"top_inclusive_wallaby_hack": "Email address",
"happy_house_dragonfly_clap": "Weeners are never stored in plain text.",
"early_last_ocelot_praise": "Register",
"safe_candid_horse_jump": "Registrations are disabled on this instance.",
"wide_away_cat_taste": "Sorry :c",
"sea_maroon_peacock_yell": "Must be lowercase letters, numbers, underscores or hyphens",
"civil_loose_coyote_jump": "You must agree to the Terms of Service",
"plane_quick_chipmunk_rush": "I agree to the",
"glad_last_crow_dine": "Terms of Service",
"left_maroon_myna_drip": "You've successfully registered. You can now log in with your new persona.",
"steep_aqua_fox_harbor": "Sigma Tips",
"silly_sour_fireant_fear": "Failed to create app",
"level_due_ox_greet": "Signing in...",
"candid_frail_lion_value": "Failed to generate auth URL",
"wide_least_samuel_conquer": "Style of the left sidebar.",
"fluffy_north_crow_blink": "Inset",
"day_polite_newt_loop": "Sidebar",
"jolly_mad_jackdaw_assure": "Floating",
"agent_misty_firefox_arise": "Shape of all NPC avatars.",
"polite_awful_ladybug_greet": "Round",
"sad_each_cowfish_lock": "Square",
"fit_cool_bulldog_dine": "Avatar Shape",
"deft_seemly_donkey_slide": "Sidebar Style",
"quaint_clear_boar_attend": "Render MFM",
"aloof_helpful_larva_spur": "Render Misskey-Flavoured Markdown.",
"smart_awake_dachshund_view": "Custom CSS",
"loved_topical_rat_coax": "Custom CSS for the UI.",
"wise_neat_ox_buzz": "Dark",
"each_strong_snail_aid": "Light",
"helpful_raw_seal_nurture": "System",
"male_stout_florian_feast": "UI theme.",
"hour_elegant_mink_grip": "Theme",
"loud_raw_sheep_imagine": "Render Pepe",
"inclusive_pink_tuna_enjoy": "Render Pepe. Requires a page reload to apply.",
"fair_swift_elephant_hunt": "Blur Sensitive Content",
"gray_minor_bee_endure": "Blur rizzes marked sensitive/spoiler.",
"stock_large_marten_comfort": "Background URL",
"mean_weird_donkey_stab": "Change the background image of the site.",
"tired_jumpy_rook_slurp": "Notifications Sidebar",
"wide_new_robin_empower": "Display a sidebar with notifications on desktop.",
"less_early_lionfish_honor": "Fluent Pepe (flat version)",
"many_tasty_midge_zoom": "Fluent Pepe",
"shy_clear_spider_cook": "Noto Pepe",
"new_brave_maggot_relish": "Twitter Pepe",
"slimy_sound_termite_hug": "Operating System",
"warm_round_dove_skip": "Theme used for rendering Pepe. Requires a page reload to apply.",
"weak_bad_martin_glow": "Pepe Theme",
"equal_blue_zebra_launch": "Ctrl+Enter to Send",
"heavy_pink_meerkat_affirm": "Send a rizz by pressing ⌘+Enter or Ctrl+Enter.",
"north_nimble_turkey_transform": "Popup Skibidi Hover",
"bold_moving_fly_savor": "Show skibidi popup when hovering over an NPC's avatar.",
"plane_dark_salmon_pout": "Automatically load more rizzes when reaching the bottom of the page.",
"helpful_early_worm_laugh": "Confirm before cooking a rizz.",
"trite_salty_eel_race": "Confirm Cook",
"sleek_this_earthworm_hug": "Infinite Scroll",
"jolly_empty_bullock_mend": "Confirm Fanum Tax",
"calm_male_wombat_relish": "Confirm before fanum taxing/fanum rebating an NPC.",
"wacky_inner_osprey_intend": "Confirm before mogging a rizz.",
"honest_great_rooster_taste": "Confirm Mog",
"patchy_basic_alligator_inspire": "Confirm Mew",
"antsy_weak_raven_treat": "Confirm before mewing a rizz.",
"fuzzy_orange_tuna_succeed": "Mentioned you",
"grand_proof_quail_read": "Mogged your rizz",
"top_steep_scallop_care": "Fanum taxed you",
"swift_just_beetle_devour": "Mewed your rizz",
"seemly_short_thrush_bloom": "Requested to fanum tax you",
"weird_seemly_termite_scold": "Accepted your fanum tax request",
"pretty_born_jackal_dial": "Language",
"tired_happy_lobster_pet": "Change the language of the interface. Requires a reload to apply.",
"keen_aware_goldfish_thrive": "English",
"vivid_mellow_sawfish_approve": "French"
}

View file

@ -18,7 +18,6 @@
"salty_aloof_turkey_nudge": "Compose", "salty_aloof_turkey_nudge": "Compose",
"quaint_low_felix_pave": "Update", "quaint_low_felix_pave": "Update",
"sunny_pink_hyena_walk": "Add account", "sunny_pink_hyena_walk": "Add account",
"factual_awful_hare_drip": "Account",
"sharp_big_mallard_reap": "Log out", "sharp_big_mallard_reap": "Log out",
"honest_few_baboon_pop": "Register", "honest_few_baboon_pop": "Register",
"spicy_loved_giraffe_empower": "Profile Actions", "spicy_loved_giraffe_empower": "Profile Actions",
@ -49,7 +48,6 @@
"merry_red_shrimp_bump": "Automated", "merry_red_shrimp_bump": "Automated",
"sweet_mad_jannes_create": "This account is not operated as living entity.", "sweet_mad_jannes_create": "This account is not operated as living entity.",
"many_fair_capybara_imagine": "Follow user", "many_fair_capybara_imagine": "Follow user",
"vivid_each_warthog_edit": "Are you sure you want to follow @${account.acct}?",
"cuddly_even_tern_loop": "Follow", "cuddly_even_tern_loop": "Follow",
"soft_bold_ant_attend": "Cancel", "soft_bold_ant_attend": "Cancel",
"quick_basic_peacock_bubble": "Following user...", "quick_basic_peacock_bubble": "Following user...",
@ -107,7 +105,6 @@
"front_sunny_penguin_flip": "Rejecting follow request...", "front_sunny_penguin_flip": "Rejecting follow request...",
"green_flat_mayfly_trust": "Follow request rejected.", "green_flat_mayfly_trust": "Follow request rejected.",
"large_vivid_horse_catch": "reblogged", "large_vivid_horse_catch": "reblogged",
"sour_major_baboon_wish": "Copied to clipboard",
"top_cute_bison_nudge": "Blocking user...", "top_cute_bison_nudge": "Blocking user...",
"main_weary_racoon_peek": "User blocked", "main_weary_racoon_peek": "User blocked",
"calm_icy_weasel_twirl": "Delete note", "calm_icy_weasel_twirl": "Delete note",
@ -131,8 +128,6 @@
"sour_seemly_bird_hike": "This content is sensitive", "sour_seemly_bird_hike": "This content is sensitive",
"bald_direct_turtle_win": "Show", "bald_direct_turtle_win": "Show",
"known_flaky_cockroach_dash": "Hide", "known_flaky_cockroach_dash": "Hide",
"dirty_sound_skunk_dust": "Show more${plainContent ? ` • ${formattedCharacterCount} characters",
"mad_direct_opossum_gleam": "`Show more${plainContent ? ` • ${formattedCharacterCount} characters` : \"\"\n }`",
"that_misty_mule_arrive": "Show less", "that_misty_mule_arrive": "Show less",
"lazy_honest_mammoth_bump": "Show more", "lazy_honest_mammoth_bump": "Show more",
"dark_spare_goldfish_charm": "{count} characters", "dark_spare_goldfish_charm": "{count} characters",
@ -251,7 +246,6 @@
"wide_topical_vole_walk": "Create an account", "wide_topical_vole_walk": "Create an account",
"keen_clean_nils_slurp": "Username", "keen_clean_nils_slurp": "Username",
"top_inclusive_wallaby_hack": "Email address", "top_inclusive_wallaby_hack": "Email address",
"mad_this_bumblebee_burn": "Password",
"happy_house_dragonfly_clap": "Passwords are never stored in plain text.", "happy_house_dragonfly_clap": "Passwords are never stored in plain text.",
"early_last_ocelot_praise": "Register", "early_last_ocelot_praise": "Register",
"safe_candid_horse_jump": "Registrations are disabled on this instance.", "safe_candid_horse_jump": "Registrations are disabled on this instance.",
@ -307,7 +301,6 @@
"trite_salty_eel_race": "Confirm Delete", "trite_salty_eel_race": "Confirm Delete",
"sleek_this_earthworm_hug": "Infinite Scroll", "sleek_this_earthworm_hug": "Infinite Scroll",
"jolly_empty_bullock_mend": "Confirm Follow", "jolly_empty_bullock_mend": "Confirm Follow",
"cool_tasty_mule_soar": "Confirm before following/unfollowing a user.",
"calm_male_wombat_relish": "Confirm before following/unfollowing a user.", "calm_male_wombat_relish": "Confirm before following/unfollowing a user.",
"wacky_inner_osprey_intend": "Confirm before reblogging a note.", "wacky_inner_osprey_intend": "Confirm before reblogging a note.",
"honest_great_rooster_taste": "Confirm Reblog", "honest_great_rooster_taste": "Confirm Reblog",

View file

@ -18,7 +18,6 @@
"salty_aloof_turkey_nudge": "Composer", "salty_aloof_turkey_nudge": "Composer",
"quaint_low_felix_pave": "Mettre à jour", "quaint_low_felix_pave": "Mettre à jour",
"sunny_pink_hyena_walk": "Ajouter un compte", "sunny_pink_hyena_walk": "Ajouter un compte",
"factual_awful_hare_drip": "Compte",
"sharp_big_mallard_reap": "Se déconnecter", "sharp_big_mallard_reap": "Se déconnecter",
"honest_few_baboon_pop": "Créer un compte", "honest_few_baboon_pop": "Créer un compte",
"spicy_loved_giraffe_empower": "Actions du profil", "spicy_loved_giraffe_empower": "Actions du profil",

View file

@ -17,7 +17,7 @@ import * as m from "~/paraglide/messages.js";
definePageMeta({ definePageMeta({
layout: "app", layout: "app",
breadcrumbs: [ breadcrumbs: () => [
{ {
text: m.chunky_awake_mallard_grow(), text: m.chunky_awake_mallard_grow(),
}, },

View file

@ -32,7 +32,7 @@ const username = (route.params.username as string).startsWith("@")
definePageMeta({ definePageMeta({
layout: "app", layout: "app",
breadcrumbs: [ breadcrumbs: () => [
{ {
text: m.tough_nice_ox_drum(), text: m.tough_nice_ox_drum(),
}, },

View file

@ -17,7 +17,7 @@ useHead({
definePageMeta({ definePageMeta({
layout: "app", layout: "app",
breadcrumbs: [ breadcrumbs: () => [
{ {
text: m.steep_aqua_fox_harbor(), text: m.steep_aqua_fox_harbor(),
}, },

View file

@ -17,7 +17,7 @@ useHead({
definePageMeta({ definePageMeta({
layout: "app", layout: "app",
breadcrumbs: [ breadcrumbs: () => [
{ {
text: m.steep_aqua_fox_harbor(), text: m.steep_aqua_fox_harbor(),
}, },

View file

@ -22,7 +22,7 @@ useHead({
definePageMeta({ definePageMeta({
layout: "app", layout: "app",
breadcrumbs: [ breadcrumbs: () => [
{ {
text: m.steep_aqua_fox_harbor(), text: m.steep_aqua_fox_harbor(),
}, },

View file

@ -18,7 +18,7 @@ useHead({
definePageMeta({ definePageMeta({
layout: "app", layout: "app",
breadcrumbs: [ breadcrumbs: () => [
{ {
text: m.steep_aqua_fox_harbor(), text: m.steep_aqua_fox_harbor(),
}, },

View file

@ -30,7 +30,7 @@ useHead({
definePageMeta({ definePageMeta({
layout: "app", layout: "app",
breadcrumbs: [ breadcrumbs: () => [
{ {
text: m.that_patchy_mare_snip(), text: m.that_patchy_mare_snip(),
href: "/notifications", href: "/notifications",

View file

@ -31,7 +31,7 @@ useHead({
definePageMeta({ definePageMeta({
layout: "app", layout: "app",
breadcrumbs: [ breadcrumbs: () => [
{ {
text: m.broad_whole_herring_reside(), text: m.broad_whole_herring_reside(),
}, },

View file

@ -25,7 +25,7 @@ useHead({
definePageMeta({ definePageMeta({
layout: "app", layout: "app",
breadcrumbs: [ breadcrumbs: () => [
{ {
text: m.broad_whole_herring_reside(), text: m.broad_whole_herring_reside(),
}, },

View file

@ -39,7 +39,7 @@ useHead({
definePageMeta({ definePageMeta({
layout: "app", layout: "app",
breadcrumbs: [ breadcrumbs: () => [
{ {
text: m.broad_whole_herring_reside(), text: m.broad_whole_herring_reside(),
}, },

View file

@ -9,7 +9,7 @@ import * as m from "~/paraglide/messages.js";
definePageMeta({ definePageMeta({
layout: "app", layout: "app",
breadcrumbs: [ breadcrumbs: () => [
{ {
text: m.broad_whole_herring_reside(), text: m.broad_whole_herring_reside(),
}, },

View file

@ -17,7 +17,7 @@ useHead({
definePageMeta({ definePageMeta({
layout: "app", layout: "app",
breadcrumbs: [ breadcrumbs: () => [
{ {
text: m.steep_aqua_fox_harbor(), text: m.steep_aqua_fox_harbor(),
}, },

View file

@ -1,7 +1,7 @@
{ {
"$schema": "https://inlang.com/schema/project-settings", "$schema": "https://inlang.com/schema/project-settings",
"sourceLanguageTag": "en", "sourceLanguageTag": "en",
"languageTags": ["en", "fr"], "languageTags": ["en", "fr", "en-rot"],
"modules": [ "modules": [
"https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-empty-pattern@latest/dist/index.js", "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-empty-pattern@latest/dist/index.js",
"https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-missing-translation@latest/dist/index.js", "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-missing-translation@latest/dist/index.js",

View file

@ -125,6 +125,10 @@ export const settings = (): Record<SettingIds, Setting> => {
}, },
), ),
}, },
{
value: "en-rot",
label: () => "Brainrot",
},
], ],
page: SettingPages.Behaviour, page: SettingPages.Behaviour,
} as EnumSetting, } as EnumSetting,

View file

@ -1,3 +1,5 @@
import { languageTag } from "~/paraglide/runtime";
export const wrapUrl = (path: string) => { export const wrapUrl = (path: string) => {
return new URL( return new URL(
path, path,
@ -6,3 +8,9 @@ export const wrapUrl = (path: string) => {
: window.location.origin, : window.location.origin,
).toString(); ).toString();
}; };
export const getLanguageTag = () => {
const tag = languageTag();
return tag === "en-rot" ? "en" : tag;
};