520f917723
Build & Push Docker Image / build (push) Successful in 2m35s
Adds a docs pipeline so each release has a version-bound Markdown document (docs/releases/vX.Y.Z.md) rendered publicly in the app: - sync-release-docs.mjs copies docs/releases/*.md into the toolrate public dir and generates index.json before every dev/build - /docs lists all releases; /docs/:version renders the sanitized Markdown (marked + DOMPurify, typography styles) - template + workflow documented in docs/README.md - current release (v0.6.0) documented as the first entry
198 lines
7.1 KiB
JSON
198 lines
7.1 KiB
JSON
{
|
||
"app": {
|
||
"name": "toolr",
|
||
"tagline": "Tool-Bewertungsplattform"
|
||
},
|
||
"nav": {
|
||
"home": "Home",
|
||
"browseTools": "Browse Tools",
|
||
"addTool": "Add Tool",
|
||
"analytics": "Analytics",
|
||
"watchlist": "Watchlist",
|
||
"trash": "Trash",
|
||
"admin": "Admin",
|
||
"redundancy": "Redundancy",
|
||
"docs": "Docs",
|
||
"search": "Search tools…"
|
||
},
|
||
"auth": {
|
||
"signIn": "Sign in",
|
||
"signInKeycloak": "Sign in with Keycloak",
|
||
"signOut": "Sign out",
|
||
"username": "Username",
|
||
"password": "Password",
|
||
"login": "Login",
|
||
"invalidCredentials": "Invalid username or password",
|
||
"notAuthenticated": "Not authenticated",
|
||
"loginSubtitle": "Sign in to your account",
|
||
"loginDescription": "Enter your credentials to continue",
|
||
"changePassword": "Change password",
|
||
"currentPassword": "Current password",
|
||
"newPassword": "New password",
|
||
"confirmPassword": "Confirm password",
|
||
"pwMismatch": "Passwords do not match",
|
||
"pwTooShort": "Password must be at least 8 characters",
|
||
"pwChanged": "Password changed",
|
||
"pwChangeFailed": "Could not change password",
|
||
"oidcPasswordHint": "Your password is managed by the identity provider (Keycloak).",
|
||
"manageInIdp": "Manage in Keycloak"
|
||
},
|
||
"common": {
|
||
"cancel": "Cancel",
|
||
"save": "Save",
|
||
"delete": "Delete",
|
||
"edit": "Edit",
|
||
"clear": "Clear",
|
||
"clearAll": "Clear all",
|
||
"search": "Search",
|
||
"add": "Add",
|
||
"back": "Back",
|
||
"backToTools": "Back to tools",
|
||
"browseTools": "Browse tools",
|
||
"viewAll": "View all",
|
||
"loading": "Loading…",
|
||
"all": "All",
|
||
"none": "None",
|
||
"language": "Language"
|
||
},
|
||
"home": {
|
||
"welcome": "Welcome to toolr",
|
||
"tagline": "The community hub where engineers honestly rate the tools they use daily.",
|
||
"totalTools": "Total Tools",
|
||
"totalRatings": "Total Ratings",
|
||
"avgRating": "Avg Rating",
|
||
"topRated": "Top Rated Tools",
|
||
"topRatedSub": "Highest combined usefulness and usability.",
|
||
"recentlyAdded": "Recently Added",
|
||
"recentlyAddedSub": "The latest additions to the catalog.",
|
||
"noRatingsYet": "No ratings yet",
|
||
"noRatingsSub": "Be the first to rate a tool and help the community.",
|
||
"noTools": "No tools found",
|
||
"noToolsSub": "There are no tools in the database yet."
|
||
},
|
||
"browse": {
|
||
"filters": "Filters",
|
||
"subtitle": "Discover and evaluate the best tools for your stack.",
|
||
"allCategories": "All Categories",
|
||
"showingTool_one": "Showing {{count}} tool",
|
||
"showingTool_other": "Showing {{count}} tools",
|
||
"tool": "Tool",
|
||
"category": "Category",
|
||
"rating": "Rating",
|
||
"reviews": "Reviews",
|
||
"noToolsFound": "No tools found",
|
||
"noToolsMatch": "We couldn't find any tools matching your current filters. Try adjusting your search criteria or add a new tool.",
|
||
"addTool": "Add Tool",
|
||
"compare": "Compare",
|
||
"compareCount": "Compare ({{count}})",
|
||
"addToCompare": "Add to compare",
|
||
"removeFromCompare": "Remove from compare",
|
||
"comparePremiumTitle": "Compare is a Premium feature",
|
||
"comparePremiumSub": "Comparing tools side-by-side is available to Premium and Enterprise users. Upgrade your plan to unlock it.",
|
||
"notNow": "Not now",
|
||
"upgradePremium": "Upgrade to Premium",
|
||
"sortNewest": "Newest",
|
||
"sortTopRated": "Top Rated",
|
||
"sortMostReviewed": "Most Reviewed",
|
||
"sortNameAsc": "Name (A–Z)",
|
||
"sortNameDesc": "Name (Z–A)",
|
||
"sortRecentlyUpdated": "Recently Updated"
|
||
},
|
||
"filter": {
|
||
"tags": "Tags",
|
||
"features": "Features",
|
||
"minRating": "Min. rating",
|
||
"any": "Any",
|
||
"clearFilters": "Clear filters"
|
||
},
|
||
"detail": {
|
||
"ratingBreakdown": "Rating Breakdown",
|
||
"usefulness": "Usefulness",
|
||
"usability": "Usability",
|
||
"scoreDistribution": "Score Distribution",
|
||
"scoreTrend": "Score Trend",
|
||
"notEnoughRatings": "Not enough ratings yet to show a trend.",
|
||
"reviews": "Reviews",
|
||
"basedOnReview_one": "Based on {{count}} review",
|
||
"basedOnReview_other": "Based on {{count}} reviews",
|
||
"saveToWatchlist": "Save to watchlist",
|
||
"savedToWatchlist": "Saved to watchlist",
|
||
"removeFromWatchlist": "Remove from watchlist",
|
||
"visitWebsite": "Visit Website",
|
||
"edit": "Edit",
|
||
"delete": "Delete",
|
||
"noReviews": "No reviews yet.",
|
||
"addReview": "Add Review",
|
||
"yourRating": "Your Rating",
|
||
"submit": "Submit Rating",
|
||
"relatedTools": "Related Tools",
|
||
"costs": "Costs",
|
||
"addCost": "Add Cost",
|
||
"recentRatings": "Recent Ratings",
|
||
"deleteConfirmTitle": "Delete this tool?",
|
||
"deleteToTrash": "This will move {{name}} to the trash. It can be restored later.",
|
||
"deletePermanent": "This will permanently remove {{name}} and all its ratings. This cannot be undone.",
|
||
"deleting": "Deleting…",
|
||
"deleteAction": "Delete"
|
||
},
|
||
"compare": {
|
||
"title": "Compare Tools",
|
||
"subtitle": "Comparing {{count}} tool(s) side-by-side.",
|
||
"sideBySide": "Side-by-side comparison",
|
||
"bestValue": "Best value in each row is highlighted.",
|
||
"attribute": "Attribute",
|
||
"rating": "Rating",
|
||
"reviews": "Reviews",
|
||
"description": "Description",
|
||
"lastUpdated": "Last updated",
|
||
"requiresPremium": "Compare requires a higher tier",
|
||
"requiresPremiumSub": "Compare tools side-by-side is available to Premium and Enterprise users.",
|
||
"nothingToCompare": "Nothing to compare",
|
||
"nothingToCompareSub": "Select at least one tool to compare and come back here.",
|
||
"backToBrowse": "Back to browse"
|
||
},
|
||
"watchlist": {
|
||
"title": "Watchlist",
|
||
"subtitle": "Tools you saved for later, with live scores.",
|
||
"requiresPremium": "Watchlist requires a higher tier",
|
||
"requiresPremiumSub": "Saving tools to your watchlist is available to Premium and Enterprise users.",
|
||
"empty": "Your watchlist is empty",
|
||
"emptySub": "Browse tools and click the bookmark to save them here.",
|
||
"remove": "Remove from watchlist"
|
||
},
|
||
"trash": {
|
||
"title": "Trash",
|
||
"subtitle": "Deleted tools are kept here until they are restored or permanently removed.",
|
||
"requiresPremium": "Trash requires a higher tier",
|
||
"requiresPremiumSub": "The trash is available to Premium and Enterprise users.",
|
||
"empty": "The trash is empty.",
|
||
"noMatch": "No tools match your search.",
|
||
"trashedTools": "Trashed Tools",
|
||
"toolsInTrash_one": "{{count}} tool in trash",
|
||
"toolsInTrash_other": "{{count}} tools in trash",
|
||
"selected_one": "{{count}} selected",
|
||
"selected_other": "{{count}} selected",
|
||
"restore": "Restore",
|
||
"deletePermanently": "Delete permanently",
|
||
"emptyTrash": "Empty trash",
|
||
"deletedAt": "Deleted at",
|
||
"deletedBy": "Deleted by"
|
||
},
|
||
"notFound": {
|
||
"text": "This page doesn't exist.",
|
||
"backHome": "Back to Home"
|
||
},
|
||
"docs": {
|
||
"title": "Release Documentation",
|
||
"subtitle": "Version-bound documentation for each release — what's new, what changed, and what to know when upgrading.",
|
||
"backToIndex": "All releases",
|
||
"noDocs": "No release documentation available yet."
|
||
},
|
||
"command": {
|
||
"navigate": "Navigate",
|
||
"recent": "Recent",
|
||
"tools": "Tools",
|
||
"noResults": "No tools found for \"{{query}}\".",
|
||
"startTyping": "Start typing to search tools."
|
||
}
|
||
} |