Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/checks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,12 @@ jobs:
- name: Typecheck
run: bun run validate

# Keys used in code that exist in no locale render as their own name to the user. The ones
# that were already like that are pinned in validate-locales.baseline.json, so this fails on
# new ones only; the per-locale coverage table lands in the run summary either way.
- name: Locales
run: bun run validate:locales

# App tests (vitest, Vue SFCs) and package tests (bun test) run separately —
# the packages import from "bun:test" and only bun can execute them.
- name: Test
Expand Down
27 changes: 27 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,33 @@
<link rel="preconnect" href="https://rts.argon.gl" />
<link href="https://emoji-css.afeld.me/emoji.css" rel="stylesheet">
<link rel="stylesheet" href="/packages/assets/fonts/fonts.css">
<!--
The loading overlay and the boot gate are drawn long before Vue mounts and applies the
appearance settings, so the theme class has to be on <html> already - otherwise every start
flashes the wrong theme. Mirrors useTheme(): "system" follows the OS, and anything that is
not "light" (dark, oled) is dark.
-->
<script>
(function () {
var theme = "dark";
try {
var raw = localStorage.getItem("appearance.theme");
if (raw) {
// Written by persistedValue() through superjson, i.e. {"json":"dark"}.
var parsed = JSON.parse(raw);
theme = (parsed && typeof parsed === "object" ? parsed.json : parsed) || "dark";
}
} catch (e) {
/* unreadable storage - the default stands */
}
if (theme === "system") {
theme = window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light";
}
if (theme !== "light") document.documentElement.classList.add("dark");
})();
</script>
</head>
<body>
<!-- SVG filters for color blindness simulation -->
Expand Down
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,10 @@
"build:games:watch": "bun run scripts/build-games.ts --watch",
"build:packages": "bun run --filter './packages/*' build",
"sync:legal": "bun run scripts/sync-legal.ts",
"theme:empty-states": "bun run scripts/theme-empty-states.ts",
"sentry:dashboards": "bun run scripts/sentry/dashboards.ts",
"validate": "vue-tsc --noEmit -p tsconfig.app.json",
"validate:locales": "bun run scripts/validate-locales.ts",
"test": "bun run test:app && bun run test:packages",
"test:app": "vitest run",
"test:watch": "vitest",
Expand Down
887 changes: 882 additions & 5 deletions packages/i18n/src/core/am.json

Large diffs are not rendered by default.

93 changes: 92 additions & 1 deletion packages/i18n/src/core/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -850,6 +850,9 @@
"outgoing_request": "Outgoing",
"pending": "Pending",
"blocked_users": "Blocked Users",
"blocked_status": "Blocked",
"show_all": "Show all",
"show_less": "Show less",
"empty_section": "Nothing here yet",
"no_items_found": "No items found",
"join": "Join",
Expand Down Expand Up @@ -1513,5 +1516,93 @@
"link_previews_show": "Show link previews",
"link_previews_show_desc": "Cards with a title, description and picture under links in messages",
"link_previews_send": "Attach previews to my links",
"link_previews_send_desc": "When you paste a link, a preview is fetched and sent with the message. You can remove it before sending."
"link_previews_send_desc": "When you paste a link, a preview is fetched and sent with the message. You can remove it before sending.",
"accent_system": "System accent",
"activity_description": "Anything you get up to in Argon shows up here.",
"add_caption": "Add a caption",
"add_reaction": "Add reaction",
"allow": "Allow",
"attachment": "Attachment",
"auto_delete_failed": "Could not change the auto-delete period.",
"away": "Away",
"calling": "Calling",
"cancelled": "Cancelled",
"change_banner": "Change banner",
"channel_permissions": "Channel permissions",
"channel_permissions_desc": "Override role permissions for this channel.",
"click_to_retry": "click to retry",
"delete_channel": "Delete channel",
"delete_group": "Delete group",
"delete_group_with_channels": "Delete group + channels",
"deny": "Deny",
"disable": "Disable",
"do_not_disturb": "Do not disturb",
"drop_files_here": "Drop files here",
"drop_to_add": "Drop to add",
"edit": "Edit",
"edit_permissions": "Edit permissions",
"edit_profile": "Edit profile",
"failed_to_accept_request": "Could not accept the friend request.",
"failed_to_cancel_request": "Could not cancel the friend request.",
"failed_to_decline_request": "Could not decline the friend request.",
"failed_to_load_friends": "Could not load your friends.",
"failed_to_remove_friend": "Could not remove this friend.",
"friend_removed": "Friend removed.",
"friend_request_accepted": "Friend request accepted.",
"friend_request_canceled": "Friend request cancelled.",
"friend_request_declined": "Friend request declined.",
"header_updated": "Banner updated",
"header_updated_desc": "The new banner is live for everyone here.",
"header_upload_failed": "Could not upload the banner.",
"in_game": "In a game",
"inherit": "Inherit",
"invalid_code": "That code is not right.",
"inventory_group": "Group",
"inventory_quantity": "Quantity",
"listening": "Listening",
"load_more": "Load more",
"loading_game": "Loading the game",
"mark_all_read": "Mark all as read",
"mark_read": "Mark as read",
"messages": "Messages",
"mute_all": "Mute channel",
"new_messages": "New messages",
"no_bio": "Nothing written here yet",
"no_notifications": "Nothing to catch up on",
"no_send_permission": "You do not have permission to send messages",
"notification_settings": "Notification settings",
"offline": "Offline",
"only_mentions": "Only @mentions",
"open_in_split": "Open in split view",
"otp_disable_failed": "Could not turn two-step verification off.",
"otp_enable_failed": "Could not turn two-step verification on.",
"passkey_add_cancelled": "Adding the passkey was cancelled.",
"passkey_remove_error": "Could not remove the passkey.",
"passkey_test_cancelled": "The passkey check was cancelled.",
"passkey_test_error": "The passkey did not answer.",
"passkey_test_success": "Passkey works",
"password_required": "Enter your password",
"pin": "Pin",
"players": "players",
"reply": "Reply",
"reset_success": "Overwrite removed",
"select_game_description": "Pick something to play together in this channel.",
"select_option": "Select…",
"select_role_to_configure": "Select a role to configure overwrites",
"send": "Send",
"send_failed": "Failed to send",
"share": "Share",
"start_activity": "Start an activity",
"stats": "Stats",
"stop_preview": "Stop preview",
"submit": "Submit",
"system": "System",
"theme_system": "System",
"theme_system_desc": "Follow OS",
"touch_grass": "Touch Grass",
"ultima_boost_collapse": "Collapse",
"ultima_boost_expand": "Expand",
"unmuted": "All notifications",
"unpin": "Unpin",
"works_correctly": "works correctly"
}
Loading
Loading