diff --git a/app.vue b/app.vue index a845ce2..0a9972f 100644 --- a/app.vue +++ b/app.vue @@ -19,10 +19,14 @@ import "~/styles/index.css"; import { convert } from "html-to-text"; import ConfirmationModal from "./components/modals/confirm.vue"; import { Toaster } from "./components/ui/sonner"; +import { setLanguageTag } from "./paraglide/runtime"; import { type EnumSetting, SettingIds } from "./settings"; // Sin //import "~/styles/mcdonalds.css"; +const lang = useLanguage(); +setLanguageTag(lang.value); + const code = useRequestURL().searchParams.get("code"); const appData = useAppData(); const instance = useInstance(); diff --git a/components/composer/composer.vue b/components/composer/composer.vue index 4eb9806..7a4a69a 100644 --- a/components/composer/composer.vue +++ b/components/composer/composer.vue @@ -23,7 +23,7 @@ - Mention someone + {{ m.game_tough_seal_adore() }} @@ -34,7 +34,7 @@ - Enable Markdown + {{ m.plane_born_koala_hope() }} @@ -62,7 +62,7 @@ - Insert emoji + {{ m.blue_ornate_coyote_tickle() }} @@ -72,7 +72,7 @@ - Attach a file + {{ m.top_patchy_earthworm_vent() }} @@ -82,12 +82,12 @@ - Mark as sensitive + {{ m.frail_broad_mallard_dart() }} - {{ relation?.type === "edit" ? "Save" : "Send" }} + {{ relation?.type === "edit" ? m.gaudy_strong_puma_slide() : m.free_teal_bulldog_learn() }} @@ -110,6 +110,7 @@ import { SelectTrigger } from "radix-vue"; import { toast } from "vue-sonner"; import Note from "~/components/notes/note.vue"; import { Select, SelectContent, SelectItem } from "~/components/ui/select"; +import * as m from "~/paraglide/messages.js"; import { SettingIds } from "~/settings"; import { Button } from "../ui/button"; import { Input } from "../ui/input"; @@ -145,11 +146,11 @@ const getMentions = () => { const peopleToMention = relation.note.mentions .concat(relation.note.account) // Deduplicate mentions - .filter((m, i, a) => a.indexOf(m) === i) + .filter((men, i, a) => a.indexOf(men) === i) // Remove self - .filter((m) => m.id !== identity.value?.account.id); + .filter((men) => men.id !== identity.value?.account.id); - const mentions = peopleToMention.map((m) => `@${m.acct}`).join(" "); + const mentions = peopleToMention.map((me) => `@${me.acct}`).join(" "); return `${mentions} `; }; @@ -165,10 +166,10 @@ const state = reactive({ ? relation.note.visibility : "public") as Status["visibility"], files: (relation?.type === "edit" - ? relation.note.media_attachments.map((m) => ({ - apiId: m.id, - file: new File([], m.url), - alt: m.description, + ? relation.note.media_attachments.map((a) => ({ + apiId: a.id, + file: new File([], a.url), + alt: a.description, uploading: false, updating: false, })) @@ -276,23 +277,23 @@ const uploadFiles = (files: File[]) => { const visibilities = { public: { icon: Globe, - name: "Public", - text: "Can be seen by anyone.", + name: m.lost_trick_dog_grace(), + text: m.last_mean_peacock_zip(), }, unlisted: { icon: LockOpen, - name: "Unlisted", - text: "Can be seen by anyone with the link.", + name: m.funny_slow_jannes_walk(), + text: m.grand_strong_gibbon_race(), }, private: { icon: Lock, - name: "Private", - text: "Can only be seen by your followers.", + name: m.grassy_empty_raven_startle(), + text: m.white_teal_ostrich_yell(), }, direct: { icon: AtSign, - name: "Direct", - text: "Can only be seen by mentioned users.", + name: m.pretty_bold_baboon_wave(), + text: m.lucky_mean_robin_link(), }, }; \ No newline at end of file diff --git a/components/composer/dialog.vue b/components/composer/dialog.vue index 253577f..86213ff 100644 --- a/components/composer/dialog.vue +++ b/components/composer/dialog.vue @@ -2,6 +2,7 @@ import { Dialog, DialogContent, DialogTitle } from "@/components/ui/dialog"; import type { Status, StatusSource } from "@versia/client/types"; import { toast } from "vue-sonner"; +import * as m from "~/paraglide/messages.js"; import Composer from "./composer.vue"; useListen("composer:open", () => { @@ -11,7 +12,7 @@ useListen("composer:open", () => { }); useListen("composer:edit", async (note) => { - const id = toast.loading("Loading note data...", { + const id = toast.loading(m.wise_late_fireant_walk(), { duration: 0, }); const { data: source } = await client.value.getStatusSource(note.id); @@ -56,13 +57,16 @@ const relation = ref( - {if (!o) { relation = null}}"> - + { if (!o) { relation = null } }"> + - {{ relation?.type === "reply" ? "Reply" : relation?.type === "quote" ? "Quote" : "Compose" }} + {{ relation?.type === "reply" ? m.loved_busy_mantis_slide() : relation?.type === "quote" ? "Quote" : + m.chunky_dull_marlin_trip() }} - {{ relation?.type === "reply" ? "Reply to this status" : relation?.type === "quote" ? "Quote this status" : "Compose a new status" }} + {{ relation?.type === "reply" ? m.tired_grassy_vulture_forgive() : relation?.type === "quote" ? + m.livid_livid_nils_snip() : m.brief_cool_capybara_fear() }} diff --git a/components/modals/confirm-inline.vue b/components/modals/confirm-inline.vue index 6eea9e5..cab014a 100644 --- a/components/modals/confirm-inline.vue +++ b/components/modals/confirm-inline.vue @@ -12,6 +12,7 @@ import { import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Textarea } from "@/components/ui/textarea"; +import * as m from "~/paraglide/messages.js"; import type { ConfirmModalOptions, ConfirmModalResult } from "./composable.ts"; defineProps<{ @@ -41,14 +42,14 @@ const inputValue = ref(""); - Value + {{ m.mean_mean_badger_inspire() }} - Value + {{ m.mean_mean_badger_inspire() }} diff --git a/components/modals/confirm.vue b/components/modals/confirm.vue index 0479a60..5d0019e 100644 --- a/components/modals/confirm.vue +++ b/components/modals/confirm.vue @@ -12,6 +12,7 @@ import { import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Textarea } from "@/components/ui/textarea"; +import * as m from "~/paraglide/messages.js"; import { type ConfirmModalOptions, type ConfirmModalResult, @@ -20,11 +21,11 @@ import { const isOpen = ref(false); const modalOptions = ref({ - title: "Confirm", + title: m.antsy_whole_alligator_blink(), message: "", inputType: "none", - confirmText: "Confirm", - cancelText: "Cancel", + confirmText: m.antsy_whole_alligator_blink(), + cancelText: m.soft_bold_ant_attend(), }); const inputValue = ref(""); const resolvePromise = ref<((result: ConfirmModalResult) => void) | null>(null); @@ -32,11 +33,11 @@ const resolvePromise = ref<((result: ConfirmModalResult) => void) | null>(null); function open(options: ConfirmModalOptions): Promise { isOpen.value = true; modalOptions.value = { - title: options.title || "Confirm", + title: options.title || m.antsy_whole_alligator_blink(), message: options.message, inputType: options.inputType || "none", - confirmText: options.confirmText || "Confirm", - cancelText: options.cancelText || "Cancel", + confirmText: options.confirmText || m.antsy_whole_alligator_blink(), + cancelText: options.cancelText || m.soft_bold_ant_attend(), }; inputValue.value = options.defaultValue || ""; diff --git a/components/notes/actions.vue b/components/notes/actions.vue index 98a244e..e49c3d1 100644 --- a/components/notes/actions.vue +++ b/components/notes/actions.vue @@ -1,22 +1,22 @@ - + {{ numberFormat(replyCount) }} - + {{ numberFormat(likeCount) }} - + {{ numberFormat(reblogCount) }} - + - + @@ -27,6 +27,8 @@ import { Ellipsis, Heart, Quote, Repeat, Reply } from "lucide-vue-next"; import { toast } from "vue-sonner"; import { Button } from "~/components/ui/button"; +import * as m from "~/paraglide/messages.js"; +import { languageTag } from "~/paraglide/runtime"; import { SettingIds } from "~/settings"; import { confirmModalService } from "../modals/composable"; import Menu from "./menu.vue"; @@ -58,9 +60,9 @@ const confirmReblogs = useSetting(SettingIds.ConfirmReblog); const like = async () => { if (confirmLikes.value.value) { const confirmation = await confirmModalService.confirm({ - title: "Like status", - message: "Are you sure you want to like this status?", - confirmText: "Like", + title: m.slimy_least_ray_aid(), + message: m.stale_new_ray_jolt(), + confirmText: m.royal_close_samuel_scold(), inputType: "none", }); @@ -69,19 +71,19 @@ const like = async () => { } } - const id = toast.loading("Liking status..."); + const id = toast.loading(m.slimy_candid_tiger_read()); const { data } = await client.value.favouriteStatus(noteId); toast.dismiss(id); - toast.success("Status liked"); + toast.success(m.mealy_slow_buzzard_commend()); useEvent("note:edit", data); }; const unlike = async () => { if (confirmLikes.value.value) { const confirmation = await confirmModalService.confirm({ - title: "Unlike status", - message: "Are you sure you want to unlike this status?", - confirmText: "Unlike", + title: m.odd_strong_halibut_prosper(), + message: m.slow_blue_parrot_savor(), + confirmText: m.vexed_fluffy_clownfish_dance(), inputType: "none", }); @@ -90,19 +92,19 @@ const unlike = async () => { } } - const id = toast.loading("Unliking status..."); + const id = toast.loading(m.busy_active_leopard_strive()); const { data } = await client.value.unfavouriteStatus(noteId); toast.dismiss(id); - toast.success("Status unliked"); + toast.success(m.fresh_direct_bear_affirm()); useEvent("note:edit", data); }; const reblog = async () => { if (confirmReblogs.value.value) { const confirmation = await confirmModalService.confirm({ - title: "Reblog status", - message: "Are you sure you want to reblog this status?", - confirmText: "Reblog", + title: m.best_mellow_llama_surge(), + message: m.salty_plain_mallard_gaze(), + confirmText: m.aware_helpful_marlin_drop(), inputType: "none", }); @@ -111,19 +113,19 @@ const reblog = async () => { } } - const id = toast.loading("Reblogging status..."); + const id = toast.loading(m.late_sunny_cobra_scold()); const { data } = await client.value.reblogStatus(noteId); toast.dismiss(id); - toast.success("Status reblogged"); + toast.success(m.weird_moving_hawk_lift()); useEvent("note:edit", data.reblog || data); }; const unreblog = async () => { if (confirmReblogs.value.value) { const confirmation = await confirmModalService.confirm({ - title: "Unreblog status", - message: "Are you sure you want to unreblog this status?", - confirmText: "Unreblog", + title: m.main_fancy_octopus_loop(), + message: m.odd_alive_swan_express(), + confirmText: m.lime_neat_ox_stab(), inputType: "none", }); @@ -132,16 +134,16 @@ const unreblog = async () => { } } - const id = toast.loading("Unreblogging status..."); + const id = toast.loading(m.white_sharp_gorilla_embrace()); const { data } = await client.value.unreblogStatus(noteId); toast.dismiss(id); - toast.success("Status unreblogged"); + toast.success(m.royal_polite_moose_catch()); useEvent("note:edit", data); }; const numberFormat = (number = 0) => number !== 0 - ? new Intl.NumberFormat(undefined, { + ? new Intl.NumberFormat(languageTag(), { notation: "compact", compactDisplay: "short", maximumFractionDigits: 1, diff --git a/components/notes/content.vue b/components/notes/content.vue index 74c6d41..9ce5231 100644 --- a/components/notes/content.vue +++ b/components/notes/content.vue @@ -1,14 +1,14 @@ - Sensitive content + {{ m.livid_tangy_lionfish_clasp() }} - {{ contentWarning || "This content is sensitive" }} + {{ contentWarning || m.sour_seemly_bird_hike() }} - {{ blurred ? "Show" : "Hide" }} + {{ blurred ? m.bald_direct_turtle_win() : m.known_flaky_cockroach_dash() }} {{ collapsed - ? `Show more${plainContent ? ` • ${formattedCharacterCount} characters` : "" - }` - : "Show less" + ? `${m.lazy_honest_mammoth_bump()}${plainContent ? ` • ${m.dark_spare_goldfish_charm({ + count: formattedCharacterCount ?? '0', + })}` : "" }` + : m.that_misty_mule_arrive() }} @@ -41,6 +42,7 @@ import { cn } from "@/lib/utils"; import type { Attachment, Emoji, Status } from "@versia/client/types"; import { TriangleAlert } from "lucide-vue-next"; import { Button } from "~/components/ui/button"; +import * as m from "~/paraglide/messages.js"; import { languageTag } from "~/paraglide/runtime"; import { type BooleanSetting, SettingIds } from "~/settings"; import { Alert, AlertDescription, AlertTitle } from "../ui/alert"; diff --git a/components/notes/copyable-text.vue b/components/notes/copyable-text.vue index a82b432..8aae778 100644 --- a/components/notes/copyable-text.vue +++ b/components/notes/copyable-text.vue @@ -7,7 +7,7 @@ - Click to copy + {{ m.clean_yummy_owl_reside() }} @@ -18,6 +18,7 @@ import { cn } from "@/lib/utils"; import { Check, Clipboard } from "lucide-vue-next"; import type { HTMLAttributes } from "vue"; import { toast } from "vue-sonner"; +import * as m from "~/paraglide/messages.js"; const { text } = defineProps<{ text: string; diff --git a/components/notes/menu.vue b/components/notes/menu.vue index d943c8d..2ffb8a9 100644 --- a/components/notes/menu.vue +++ b/components/notes/menu.vue @@ -21,6 +21,7 @@ import { } from "lucide-vue-next"; import { toast } from "vue-sonner"; import { confirmModalService } from "~/components/modals/composable.ts"; +import * as m from "~/paraglide/messages.js"; import { SettingIds } from "~/settings"; const { authorId, noteId } = defineProps<{ @@ -45,23 +46,23 @@ const confirmDeletes = useSetting(SettingIds.ConfirmDelete); const copyText = (text: string) => { copy(text); - toast.success("Copied to clipboard"); + toast.success(m.flat_nice_worm_dream()); }; const blockUser = async (userId: string) => { - const id = toast.loading("Blocking user..."); + const id = toast.loading(m.top_cute_bison_nudge()); await client.value.blockAccount(userId); toast.dismiss(id); - toast.success("User blocked"); + toast.success(m.main_weary_racoon_peek()); }; const _delete = async () => { if (confirmDeletes.value.value) { const confirmation = await confirmModalService.confirm({ - title: "Delete status", - message: "Are you sure you want to delete this status?", - confirmText: "Delete", + title: m.calm_icy_weasel_twirl(), + message: m.gray_fun_toucan_slide(), + confirmText: m.royal_best_tern_transform(), inputType: "none", }); @@ -70,11 +71,11 @@ const _delete = async () => { } } - const id = toast.loading("Deleting status..."); + const id = toast.loading(m.new_funny_fox_boil()); await client.value.deleteStatus(noteId); toast.dismiss(id); - toast.success("Status deleted"); + toast.success(m.green_tasty_bumblebee_beam()); emit("delete"); }; @@ -85,57 +86,57 @@ const _delete = async () => { - Note Actions + {{ m.many_misty_parakeet_fall() }} - Edit + {{ m.front_lime_grizzly_persist() }} - Copy API data + {{ m.yummy_moving_scallop_sail() }} - Copy ID + {{ m.sunny_zany_jellyfish_pop() }} - Copy link + {{ m.ago_new_pelican_drip() }} - Copy link (origin) + {{ m.solid_witty_zebra_walk() }} - Open on remote + {{ m.active_trite_lark_inspire() }} - Delete and redraft + {{ m.real_green_clownfish_pet() }} - Delete + {{ m.tense_quick_cod_favor() }} - Report + {{ m.great_few_jaguar_rise() }} - Block user + {{ m.misty_soft_sparrow_vent() }} diff --git a/components/notifications/notification.vue b/components/notifications/notification.vue index 8a2454a..4035d89 100644 --- a/components/notifications/notification.vue +++ b/components/notifications/notification.vue @@ -55,6 +55,7 @@ import { TooltipContent, TooltipTrigger, } from "~/components/ui/tooltip"; +import * as m from "~/paraglide/messages.js"; import Note from "../notes/note.vue"; import Avatar from "../profiles/avatar.vue"; import FollowRequest from "./follow-request.vue"; @@ -85,17 +86,17 @@ const icon = computed(() => { const text = computed(() => { switch (notification.type) { case "mention": - return "Mentioned you"; + return m.fuzzy_orange_tuna_succeed(); case "reblog": - return "Reblogged your note"; + return m.grand_proof_quail_read(); case "follow": - return "Followed you"; + return m.top_steep_scallop_care(); case "favourite": - return "Liked your note"; + return m.swift_just_beetle_devour(); case "follow_request": - return "Requested to follow you"; + return m.seemly_short_thrush_bloom(); case "follow_accept": - return "Accepted your follow request"; + return m.weird_seemly_termite_scold(); default: return ""; } diff --git a/components/preferences/emojis/emoji.vue b/components/preferences/emojis/emoji.vue index 374c837..9fe06dd 100644 --- a/components/preferences/emojis/emoji.vue +++ b/components/preferences/emojis/emoji.vue @@ -10,7 +10,7 @@ {{ emoji.shortcode }} - {{ emoji.global ? m.lime_day_squid_pout() : m.witty_heroic_trout_cry() }} + {{ emoji.global ? m.real_tame_moose_greet() : m.witty_heroic_trout_cry() }} diff --git a/components/preferences/select.vue b/components/preferences/select.vue index af25885..f327bd0 100644 --- a/components/preferences/select.vue +++ b/components/preferences/select.vue @@ -2,10 +2,10 @@ - {{ setting.title }} + {{ setting.title() }} - {{ setting.description }} + {{ setting.description() }} @@ -15,7 +15,7 @@ - {{ option.label }} + {{ option.label() }} diff --git a/components/preferences/switch.vue b/components/preferences/switch.vue index 4125743..42aa73b 100644 --- a/components/preferences/switch.vue +++ b/components/preferences/switch.vue @@ -2,10 +2,10 @@ - {{ setting.title }} + {{ setting.title() }} - {{ setting.description }} + {{ setting.description() }} diff --git a/components/sidebars/left-sidebar.vue b/components/sidebars/left-sidebar.vue index 7995b1f..b5fc1a3 100644 --- a/components/sidebars/left-sidebar.vue +++ b/components/sidebars/left-sidebar.vue @@ -120,7 +120,6 @@ import { SidebarRail, } from "~/components/ui/sidebar"; import * as m from "~/paraglide/messages.js"; -import { setLanguageTag } from "~/paraglide/runtime"; import { type EnumSetting, SettingIds } from "~/settings"; import Avatar from "../profiles/avatar.vue"; import { Button } from "../ui/button"; @@ -128,8 +127,6 @@ import AccountSwitcher from "./account-switcher.vue"; const sidebarStyle = useSetting(SettingIds.SidebarStyle) as Ref; -setLanguageTag("fr"); - const data = { navMain: [ { diff --git a/components/timelines/timeline.vue b/components/timelines/timeline.vue index 985c280..09fc74e 100644 --- a/components/timelines/timeline.vue +++ b/components/timelines/timeline.vue @@ -18,9 +18,9 @@ - No more data. + {{ m.steep_suave_fish_snap() }} - You've scrolled so far, there's nothing left to show. + {{ m.muddy_bland_shark_accept() }} @@ -28,16 +28,16 @@ - There's nothing to show here. + {{ m.fine_arable_lemming_fold() }} - Either you're all caught up or there's nothing to show. + {{ m.petty_honest_fish_stir() }} - Load More + {{ m.gaudy_bland_gorilla_talk() }} @@ -55,6 +55,7 @@ import { CardHeader, CardTitle, } from "~/components/ui/card"; +import * as m from "~/paraglide/messages.js"; import { SettingIds } from "~/settings"; import { Button } from "../ui/button"; import TimelineItem from "./timeline-item.vue"; diff --git a/composables/CacheRefresh.ts b/composables/CacheRefresh.ts index f439596..eae9056 100644 --- a/composables/CacheRefresh.ts +++ b/composables/CacheRefresh.ts @@ -1,5 +1,7 @@ import type { Client } from "@versia/client"; import type { RolePermission } from "@versia/client/types"; +import { toast } from "vue-sonner"; +import * as m from "~/paraglide/messages.js"; export const useCacheRefresh = (client: MaybeRef) => { // Refresh custom emojis and instance data and me on every reload @@ -21,11 +23,8 @@ export const useCacheRefresh = (client: MaybeRef) => { if (code === 401) { // Reset tokenData identity.value = null; - useEvent("notification:new", { - type: "error", - title: "Your session has expired", - description: - "You have been logged out. Please log in again.", + toast.error(m.fancy_this_wasp_renew(), { + description: m.real_weird_deer_stop(), }); } }); diff --git a/composables/Language.ts b/composables/Language.ts new file mode 100644 index 0000000..1f4990d --- /dev/null +++ b/composables/Language.ts @@ -0,0 +1,7 @@ +import { SettingIds } from "~/settings"; + +export const useLanguage = () => { + const lang = useSetting(SettingIds.Language); + + return computed(() => lang.value.value as "en" | "fr"); +}; diff --git a/composables/Settings.ts b/composables/Settings.ts index 668b092..24b230a 100644 --- a/composables/Settings.ts +++ b/composables/Settings.ts @@ -7,7 +7,7 @@ import { } from "~/settings"; const useSettings = () => { - return useLocalStorage("versia:settings", settingsJson, { + return useLocalStorage("versia:settings", settingsJson(), { serializer: { read(raw) { const json = StorageSerializers.object.read(raw); diff --git a/layouts/app.vue b/layouts/app.vue index d2c505e..cd02382 100644 --- a/layouts/app.vue +++ b/layouts/app.vue @@ -4,14 +4,14 @@ - Not signed in + {{ m.sunny_quick_lionfish_flip() }} - This page requires you to be authenticated. Please sign in to continue. + {{ m.brave_known_pelican_drip() }} - Sign in + {{ m.fuzzy_sea_moth_absorb() }} @@ -31,6 +31,7 @@ import { CardHeader, CardTitle, } from "~/components/ui/card"; +import * as m from "~/paraglide/messages.js"; const appData = useAppData(); const signInAction = () => signIn(appData); diff --git a/messages/en.json b/messages/en.json index b5cd8ed..835851a 100644 --- a/messages/en.json +++ b/messages/en.json @@ -56,10 +56,8 @@ "awake_quick_cuckoo_smile": "User followed", "funny_aloof_swan_loop": "Unfollow user", "cute_polite_oryx_blend": "Unfollow", - "dirty_inclusive_meerkat_nudge": "Cancel", "big_safe_guppy_mix": "Unfollowing user...", "misty_level_stingray_expand": "User unfollowed", - "lime_day_squid_pout": "Global", "witty_heroic_trout_cry": "Uploaded by you", "cuddly_such_swallow_hush": "Rename", "tense_quick_cod_favor": "Delete", @@ -100,7 +98,7 @@ "sunny_novel_otter_glow": "Must be at least 3 characters long", "fluffy_soft_wolf_cook": "Email (or username)", "livid_bright_wallaby_quiz": "Password", - "fuzzy_sea_moth_absorb": "Sign In", + "fuzzy_sea_moth_absorb": "Sign in", "tidy_tidy_cow_cut": "Or continue with", "slow_these_kestrel_sail": "Accept", "weary_steep_yak_embrace": "Reject", @@ -108,5 +106,221 @@ "busy_awful_mouse_jump": "Follow request accepted.", "front_sunny_penguin_flip": "Rejecting follow request...", "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...", + "main_weary_racoon_peek": "User blocked", + "calm_icy_weasel_twirl": "Delete note", + "gray_fun_toucan_slide": "Are you sure you want to delete this note?", + "royal_best_tern_transform": "Delete", + "new_funny_fox_boil": "Deleting note...", + "green_tasty_bumblebee_beam": "Note deleted", + "many_misty_parakeet_fall": "Note 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 (origin)", + "calm_fuzzy_thrush_soar": "Open on remote", + "real_green_clownfish_pet": " Delete and redraft", + "zippy_key_antelope_drop": "Delete", + "chunky_dry_gull_sing": "Report", + "bald_vexed_firefox_startle": "Block user", + "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", + "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", + "lazy_honest_mammoth_bump": "Show more", + "dark_spare_goldfish_charm": "{count} characters", + "drab_tense_turtle_comfort": "Reply", + "vexed_fluffy_clownfish_dance": "Unlike", + "royal_close_samuel_scold": "Like", + "lime_neat_ox_stab": "Unreblog", + "aware_helpful_marlin_drop": "Reblog", + "true_shy_jackal_drip": "Quote", + "busy_merry_cowfish_absorb": "Actions", + "slimy_least_ray_aid": "Like note", + "stale_new_ray_jolt": "Are you sure you want to like this note?", + "slimy_candid_tiger_read": "Liking note...", + "mealy_slow_buzzard_commend": "Note liked", + "odd_strong_halibut_prosper": "Unlike note", + "slow_blue_parrot_savor": "Are you sure you want to unlike this note?", + "busy_active_leopard_strive": "Unliking note...", + "fresh_direct_bear_affirm": "Note unliked", + "best_mellow_llama_surge": "Reblog note", + "salty_plain_mallard_gaze": "Are you sure you want to reblog this note?", + "late_sunny_cobra_scold": "Reblogging note...", + "weird_moving_hawk_lift": "Note reblogged", + "main_fancy_octopus_loop": "Unreblog note", + "odd_alive_swan_express": "Are you sure you want to unreblog this note?", + "white_sharp_gorilla_embrace": "Unreblogging note...", + "royal_polite_moose_catch": "Note unreblogged", + "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 emoji", + "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 followers.", + "lucky_mean_robin_link": "Can only be seen by mentioned users.", + "wise_late_fireant_walk": "Loading note data...", + "loved_busy_mantis_slide": "Reply", + "tired_grassy_vulture_forgive": "Reply to this note", + "solid_slow_angelfish_pave": "Compose", + "livid_livid_nils_snip": "Quote this note", + "brief_cool_capybara_fear": "Compose a new note", + "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": "Note", + "steep_sour_warthog_aim": "Loading", + "tough_nice_ox_drum": "Profile", + "noble_cute_ocelot_aim": "Register", + "novel_fine_stork_snap": "Log in to your account.", + "smug_main_whale_snip": "Enter your credentials for {host}.", + "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 {application} with your account.", + "hour_close_giraffe_mop": "This allows {application} to perform the above actions.", + "last_spare_polecat_reside": "Authorize", + "lower_factual_frog_evoke": "Authorization", + "awake_ago_capybara_kick": "$VERB your account 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 follows", + "every_silly_racoon_lift": "$VERB your lists", + "top_careful_scallop_clip": "$VERB your mutes", + "this_short_bulldog_walk": "$VERB your notifications", + "fresh_odd_rook_forgive": "Perform searches", + "witty_whole_capybara_pull": "$VERB your notes", + "agent_warm_javelina_blink": "Edit your conversations", + "dirty_red_jellyfish_ascend": "Upload media", + "crisp_vivid_seahorse_tend": "Report users", + "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 password has been reset. You can now log in with your new password.", + "every_tangy_koala_persist": "Back to front page", + "good_plane_gazelle_glow": "Your password has been reset by an administrator. Please change it here.", + "east_loud_lobster_explore": "Info", + "solid_slow_platypus_talk": "Enter your new password below. Make sure to put it in a password manager.", + "tired_green_sloth_evoke": "Reset your password", + "true_male_gadfly_stab": "New password", + "awful_cozy_jannes_rise": "Confirm password", + "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": "Passwords do not match", + "arable_arable_herring_lead": "Reset Password", + "broad_whole_herring_reside": "Preferences", + "tasty_late_termite_sew": "Account", + "actual_mean_cow_dare": "Account Preferences", + "suave_smart_mantis_climb": "Emojis", + "lucky_suave_myna_adore": "Ask your administrator to add some emojis.", + "actual_steep_llama_rest": "No emojis found.", + "mild_many_dolphin_mend": "Emoji Preferences", + "lucky_ago_rat_pinch": "Uncategorized", + "empty_awful_lark_dart": "Account not found.", + "clean_even_mayfly_tap": "Check for typos or try again later.", + "vexed_each_falcon_enjoy": "Error", + "wide_topical_vole_walk": "Create an account", + "keen_clean_nils_slurp": "Username", + "top_inclusive_wallaby_hack": "Email address", + "mad_this_bumblebee_burn": "Password", + "happy_house_dragonfly_clap": "Passwords 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 account.", + "steep_aqua_fox_harbor": "Timelines", + "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 user 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 Custom Emojis", + "inclusive_pink_tuna_enjoy": "Render custom emojis. Requires a page reload to apply.", + "fair_swift_elephant_hunt": "Blur Sensitive Content", + "gray_minor_bee_endure": "Blur notes 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 Emojis (flat version)", + "many_tasty_midge_zoom": "Fluent Emojis", + "shy_clear_spider_cook": "Noto Emoji", + "new_brave_maggot_relish": "Twitter Emojis", + "slimy_sound_termite_hug": "Operating System", + "warm_round_dove_skip": "Theme used for rendering emojis. Requires a page reload to apply.", + "weak_bad_martin_glow": "Emoji Theme", + "equal_blue_zebra_launch": "Ctrl+Enter to Send", + "heavy_pink_meerkat_affirm": "Send a note by pressing ⌘+Enter or Ctrl+Enter.", + "north_nimble_turkey_transform": "Popup Profile Hover", + "bold_moving_fly_savor": "Show profile popup when hovering over a user's avatar.", + "plane_dark_salmon_pout": "Automatically load more notes when reaching the bottom of the page.", + "helpful_early_worm_laugh": "Confirm before deleting a note.", + "trite_salty_eel_race": "Confirm Delete", + "sleek_this_earthworm_hug": "Infinite Scroll", + "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.", + "wacky_inner_osprey_intend": "Confirm before reblogging a note.", + "honest_great_rooster_taste": "Confirm Reblog", + "patchy_basic_alligator_inspire": "Confirm Like", + "antsy_weak_raven_treat": "Confirm before liking a note.", + "fuzzy_orange_tuna_succeed": "Mentioned you", + "grand_proof_quail_read": "Reblogged your note", + "top_steep_scallop_care": "Followed you", + "swift_just_beetle_devour": "Liked your note", + "seemly_short_thrush_bloom": "Requested to follow you", + "weird_seemly_termite_scold": "Accepted your follow 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" } diff --git a/messages/fr.json b/messages/fr.json index 28e0006..ac13690 100644 --- a/messages/fr.json +++ b/messages/fr.json @@ -55,10 +55,8 @@ "awake_quick_cuckoo_smile": "Utilisateur suivi", "funny_aloof_swan_loop": "Se désabonner", "cute_polite_oryx_blend": "Se désabonner", - "dirty_inclusive_meerkat_nudge": "Annuler", "big_safe_guppy_mix": "Désabonnement...", "misty_level_stingray_expand": "Utilisateur désabonné", - "lime_day_squid_pout": "Global", "witty_heroic_trout_cry": "Ajouté par vous", "cuddly_such_swallow_hush": "Renommer", "tense_quick_cod_favor": "Supprimer", @@ -105,5 +103,201 @@ "busy_awful_mouse_jump": "Demande de suivi acceptée.", "front_sunny_penguin_flip": "Rejet de la demande de suivi...", "green_flat_mayfly_trust": "Demande de suivi rejetée.", - "large_vivid_horse_catch": "a reblogué•e" + "large_vivid_horse_catch": "a reblogué•e", + "top_cute_bison_nudge": "Blocage de l'utilisateur...", + "main_weary_racoon_peek": "Utilisateur bloqué", + "calm_icy_weasel_twirl": "Supprimer la note", + "gray_fun_toucan_slide": "Etes-vous sûr de vouloir supprimer cette note ?", + "royal_best_tern_transform": "Supprimer", + "new_funny_fox_boil": "Suppression de la note...", + "green_tasty_bumblebee_beam": "Note supprimée", + "many_misty_parakeet_fall": "Actions sur la note", + "front_lime_grizzly_persist": "Modifier", + "real_green_clownfish_pet": " Supprimer et reformuler", + "clean_yummy_owl_reside": "Cliquez pour copier", + "livid_tangy_lionfish_clasp": "Contenu sensible", + "sour_seemly_bird_hike": "Ce contenu est sensible", + "bald_direct_turtle_win": "Montrer", + "known_flaky_cockroach_dash": "Cacher", + "that_misty_mule_arrive": "Afficher moins", + "lazy_honest_mammoth_bump": "Afficher plus", + "dark_spare_goldfish_charm": "{count} caractères", + "drab_tense_turtle_comfort": "Répondre", + "vexed_fluffy_clownfish_dance": "Dé-aimer", + "royal_close_samuel_scold": "Aimer", + "lime_neat_ox_stab": "Dé-rebloguer", + "aware_helpful_marlin_drop": "Rebloguer", + "true_shy_jackal_drip": "Citer", + "busy_merry_cowfish_absorb": "Actions", + "slimy_least_ray_aid": "Aimer note", + "stale_new_ray_jolt": "Etes-vous sûr de vouloir aimer cette note ?", + "slimy_candid_tiger_read": "En cours...", + "mealy_slow_buzzard_commend": "Note aimé", + "odd_strong_halibut_prosper": "Dé-aimer note", + "slow_blue_parrot_savor": "Etes-vous sûr de vouloir dé-aimer cette note ?", + "busy_active_leopard_strive": "En cours...", + "fresh_direct_bear_affirm": "Note dé-aimée", + "best_mellow_llama_surge": "Rebloguer note", + "salty_plain_mallard_gaze": "Etes-vous sûr de vouloir rebloguer cette note ?", + "late_sunny_cobra_scold": "Rebloguage de la note...", + "weird_moving_hawk_lift": "Note rebloguée", + "main_fancy_octopus_loop": "Dé-rebloguer la note", + "odd_alive_swan_express": "Etes-vous sûr de vouloir dé-rebloguer cette note ?", + "white_sharp_gorilla_embrace": "Dé-rebloguage de la note...", + "royal_polite_moose_catch": "Note dé-rebloguée", + "mean_mean_badger_inspire": "Valeur", + "antsy_whole_alligator_blink": "Confirmer", + "game_tough_seal_adore": "Mentionner quelqu'un", + "plane_born_koala_hope": "Activer le Markdown", + "blue_ornate_coyote_tickle": "Insérer un emoji", + "top_patchy_earthworm_vent": "Joindre un fichier", + "frail_broad_mallard_dart": "Marquer comme sensible", + "gaudy_strong_puma_slide": "Sauvegarder", + "free_teal_bulldog_learn": "Envoyer", + "last_mean_peacock_zip": "Peut être vu par tout le monde.", + "funny_slow_jannes_walk": "Non répertorié", + "grassy_empty_raven_startle": "Privé", + "pretty_bold_baboon_wave": "Direct", + "grand_strong_gibbon_race": "Peut être vu par toute personne avec le lien.", + "white_teal_ostrich_yell": "Ne peut être vu que par vos abonnés.", + "lucky_mean_robin_link": "Ne peut être vu que par les utilisateurs mentionnés.", + "wise_late_fireant_walk": "Chargement des données de la note...", + "loved_busy_mantis_slide": "Répondre", + "tired_grassy_vulture_forgive": "Répondre à cette note", + "livid_livid_nils_snip": "Citer cette note", + "brief_cool_capybara_fear": "Composer une nouvelle note", + "chunky_dull_marlin_trip": "Composer", + "steep_suave_fish_snap": "Plus de données.", + "muddy_bland_shark_accept": "Vous avez tellement défilé•e, qu'il il n'y a plus rien à afficher.", + "petty_honest_fish_stir": "Soit vous avez tout rattrapé, soit il n'y a rien à montrer.", + "fine_arable_lemming_fold": "Il n'y a rien ici.", + "gaudy_bland_gorilla_talk": "Charger plus", + "fancy_this_wasp_renew": "Votre session a expirée", + "real_weird_deer_stop": "Vous avez été déconnecté•e. Veuillez vous reconnecter.", + "sunny_quick_lionfish_flip": "Non connecté•e", + "brave_known_pelican_drip": "Cette page nécessite une authentification. Veuillez vous connecter pour continuer.", + "chunky_awake_mallard_grow": "Note", + "steep_sour_warthog_aim": "Chargement", + "tough_nice_ox_drum": "Profil", + "noble_cute_ocelot_aim": "Créer un compte", + "novel_fine_stork_snap": "Connectez-vous à votre compte.", + "smug_main_whale_snip": "Saisissez vos informations d'identification pour {host} .", + "aware_awful_crow_spur": "Voici votre code", + "mushy_soft_lizard_propel": "Vous vous êtes connecté avec succès.", + "short_arable_leopard_zap": "Collez le code suivant dans votre application :", + "spare_aqua_warthog_mend": "Code d'autorisation", + "fresh_broad_cockroach_radiate": "Autoriser « {application} » ?", + "gross_antsy_kangaroo_succeed": "Vous vous connectez à {application} avec votre compte.", + "hour_close_giraffe_mop": "Cela permet à {application} d'effectuer les actions listées.", + "last_spare_polecat_reside": "Autoriser", + "lower_factual_frog_evoke": "Autorisation", + "awake_ago_capybara_kick": "$VERB vos informations de compte", + "teary_zesty_racoon_transform": "$VERB votre liste de blocage", + "whole_flaky_nuthatch_rush": "$VERB vos signets", + "still_spicy_lionfish_quell": "$VERB vos favoris", + "away_mean_dolphin_empower": "$VERB vos filtres", + "sleek_empty_penguin_radiate": "$VERB vos suivis", + "every_silly_racoon_lift": "$VERB vos listes", + "top_careful_scallop_clip": "$VERB votre liste de mutage", + "this_short_bulldog_walk": "$VERB vos notifications", + "fresh_odd_rook_forgive": "Effectuer des recherches", + "witty_whole_capybara_pull": "$VERB vos notes", + "agent_warm_javelina_blink": "Modifier vos conversations", + "dirty_red_jellyfish_ascend": "Ajouter des médias", + "crisp_vivid_seahorse_tend": "Signaler des utilisateurs", + "teary_such_jay_fade": "Lire et modifier", + "smug_safe_warthog_dare": "Lire", + "loose_large_blackbird_peek": "Modifier", + "late_mean_capybara_fade": "Succès", + "brave_acidic_lobster_fetch": "Votre mot de passe a été réinitialisé. Vous pouvez désormais vous connecter avec votre nouveau mot de passe.", + "every_tangy_koala_persist": "Retour à la page d'accueil", + "good_plane_gazelle_glow": "Votre mot de passe a été réinitialisé par un administrateur. Veuillez le modifier ici.", + "east_loud_lobster_explore": "Info", + "solid_slow_platypus_talk": "Saisissez votre nouveau mot de passe ci-dessous. Assurez-vous de l'enregistrer dans un gestionnaire de mots de passe.", + "tired_green_sloth_evoke": "Réinitialisez votre mot de passe", + "true_male_gadfly_stab": "Nouveau mot de passe", + "awful_cozy_jannes_rise": "Confirmez le mot de passe", + "noisy_round_skate_yell": "Réinitialiser", + "smart_bold_macaw_aid": "Doit comporter au moins {count} caractères", + "dry_smug_goldfish_promise": "Doit comporter au maximum {count} caractères", + "candid_fancy_leopard_prosper": "Les mots de passe ne correspondent pas", + "arable_arable_herring_lead": "Réinitialiser le mot de passe", + "broad_whole_herring_reside": "Préférences", + "tasty_late_termite_sew": "Compte", + "actual_mean_cow_dare": "Préférences du compte", + "suave_smart_mantis_climb": "Émojis", + "lucky_suave_myna_adore": "Demandez à votre administrateur d’ajouter des émojis.", + "actual_steep_llama_rest": "Aucun emoji trouvé.", + "mild_many_dolphin_mend": "Préférences d'emoji", + "lucky_ago_rat_pinch": "Non classé", + "empty_awful_lark_dart": "Compte non trouvé.", + "clean_even_mayfly_tap": "Changez d'utilisateur ou réessayez plus tard.", + "early_last_ocelot_praise": "Créer un compte", + "dirty_inclusive_meerkat_nudge": "Annuler", + "sea_maroon_peacock_yell": "Ne peut contenir que des lettres minuscules, des chiffres, des tirets ou des traits de soulignement", + "civil_loose_coyote_jump": "Vous devez accepter les conditions d'utilisation", + "plane_quick_chipmunk_rush": "J'accepte les", + "glad_last_crow_dine": "Conditions d'Utilisation", + "left_maroon_myna_drip": "Vous vous êtes inscrit. Vous pouvez désormais vous connecter avec votre nouveau compte.", + "steep_aqua_fox_harbor": "Fils", + "silly_sour_fireant_fear": "Échec de la création de l'application", + "level_due_ox_greet": "Connexion...", + "candid_frail_lion_value": "Échec de la génération de l'URL d'authentification", + "wide_least_samuel_conquer": "Style de la barre latérale gauche.", + "fluffy_north_crow_blink": "Encart", + "day_polite_newt_loop": "Barre latérale", + "jolly_mad_jackdaw_assure": "Flottant", + "agent_misty_firefox_arise": "Forme de tous les avatars utilisateurs.", + "polite_awful_ladybug_greet": "Rond", + "sad_each_cowfish_lock": "Carré", + "fit_cool_bulldog_dine": "Forme d'avatar", + "deft_seemly_donkey_slide": "Style de la barre latérale", + "quaint_clear_boar_attend": "Rendu MFM", + "aloof_helpful_larva_spur": "Afficher le Misskey-Flavoured Markdown", + "smart_awake_dachshund_view": "CSS personnalisé", + "loved_topical_rat_coax": "CSS personnalisé, appliqué à l'interface utilisateur.", + "wise_neat_ox_buzz": "Sombre", + "each_strong_snail_aid": "Clair", + "helpful_raw_seal_nurture": "Système", + "male_stout_florian_feast": "Thème de l'interface.", + "hour_elegant_mink_grip": "Thème", + "loud_raw_sheep_imagine": "Afficher les émojis personnalisés", + "inclusive_pink_tuna_enjoy": "Afficher les émojis personnalisés. Nécessite un rechargement de la page.", + "fair_swift_elephant_hunt": "Flouter les contenus sensibles", + "gray_minor_bee_endure": "Floute les notes marquées comme sensibles/spoiler.", + "stock_large_marten_comfort": "URL d'arrière-plan", + "mean_weird_donkey_stab": "Change l'image d'arrière-plan du site.", + "tired_jumpy_rook_slurp": "Barre de notifications", + "wide_new_robin_empower": "Affiche une barre latérale avec des notifications.", + "less_early_lionfish_honor": "Emojis Fluents (version plate)", + "many_tasty_midge_zoom": "Émojis Fluent", + "shy_clear_spider_cook": "Émojis Noto", + "new_brave_maggot_relish": "Émojis Twitter", + "slimy_sound_termite_hug": "Système", + "warm_round_dove_skip": "Thème utilisé pour le rendu des émojis. Nécessite un rechargement de la page.", + "weak_bad_martin_glow": "Thème Emoji", + "equal_blue_zebra_launch": "Ctrl+Entrée pour envoyer", + "heavy_pink_meerkat_affirm": "Envoyez une note en appuyant sur ⌘+Entrée ou Ctrl+Entrée.", + "north_nimble_turkey_transform": "Popup sur les profils", + "bold_moving_fly_savor": "Afficher un popup d'iinformations lorsque vous survolez l'avatar d'un utilisateur.", + "plane_dark_salmon_pout": "Charger automatiquement plus de notes lorsque vous atteignez le bas de la page.", + "helpful_early_worm_laugh": "Confirmer avant de supprimer une note.", + "trite_salty_eel_race": "Confirmer les suppressions", + "sleek_this_earthworm_hug": "Défilement infini", + "jolly_empty_bullock_mend": "Confirmer suivre", + "calm_male_wombat_relish": "Confirmez avant de suivre/ne plus suivre un utilisateur.", + "wacky_inner_osprey_intend": "Confirmer avant de rebloguer une note.", + "honest_great_rooster_taste": "Confirmer les reblogs", + "patchy_basic_alligator_inspire": "Confirmer J'aime", + "antsy_weak_raven_treat": "Confirmer avant d'aimer une note.", + "fuzzy_orange_tuna_succeed": "Vous a mentionné•e", + "grand_proof_quail_read": "A reblogué•e votre note", + "top_steep_scallop_care": "Vous a suivi•e", + "swift_just_beetle_devour": "A aimé•e votre note", + "seemly_short_thrush_bloom": "Fait une demande de suivi", + "weird_seemly_termite_scold": "A accepté•e votre demande de suivi", + "pretty_born_jackal_dial": "Langue", + "tired_happy_lobster_pet": "Changer la langue de l'interface. Nécessite un rechargement.", + "keen_aware_goldfish_thrive": "Anglais", + "vivid_mellow_sawfish_approve": "Français" } diff --git a/pages/[username]/[uuid].vue b/pages/[username]/[uuid].vue index a4fa487..951d651 100644 --- a/pages/[username]/[uuid].vue +++ b/pages/[username]/[uuid].vue @@ -11,15 +11,15 @@
Mention someone
{{ m.game_tough_seal_adore() }}
Enable Markdown
{{ m.plane_born_koala_hope() }}
Insert emoji
{{ m.blue_ornate_coyote_tickle() }}
Attach a file
{{ m.top_patchy_earthworm_vent() }}
Mark as sensitive
{{ m.frail_broad_mallard_dart() }}
{host}