Make translations multi-leveled

This commit is contained in:
2026-04-29 22:41:07 +02:00
parent c4dd938a56
commit e5e34676e2
3 changed files with 597 additions and 504 deletions

View File

@@ -1,170 +1,201 @@
{
"action.back": "Back",
"action.delete": "Delete",
"action.save": "Save",
"action.send": "Send",
"admin.config": "Config",
"admin.create_success": "Created",
"admin.delete_success": "Deleted",
"admin.save_success": "Saved",
"admin.title": "Admin Panel",
"admin.toolbox": "Toolbox",
"admin.upload": "Upload",
"credits.git": "Git Repository",
"credits.license": "under GPLv3 license",
"credits.project": "Spotty Project",
"email.confirmation.body_1": "Thank you for checking in on my wanderings :). I'll make sure to keep you posted on my progress along the trail.",
"email.confirmation.body_2": "I usually check-in once a day, plus sometimes on special events, like successful peak ascents. I am using a GPS-based device (PLB) which does not require phone reception to work. Thus the messages should be pretty frequent, but, being awestruck by the beauty of nature, I could also just forget to send a signal once in a while. So do not worry if you don't receive anything for a couple of days.",
"email.confirmation.body_3": "If I've posted some pictures recently, you should also get them in the same email.",
"email.confirmation.conclusion": "See you down the road!",
"email.confirmation.preheader": "Thanks for keeping in touch!",
"email.confirmation.signature": "--François",
"email.confirmation.subject": "Successful Registration",
"email.confirmation.thanks_subject": "You're all set!",
"email.unsubscribe": "PS: Changed your mind?",
"email.unsubscribe_button": "Unsubscribe",
"email.update.latest_news": "Latest news:",
"email.update.preheader": "New position received",
"email.update.subject": "Spotted!",
"email.update.title": "Message",
"error.commit_db": "Issue committing to DB",
"error.impossible_value": "Value \"$0\" is not possible for field \"$1\"",
"error.no_auth": "No authorization",
"error.unknown_field": "Field \"$0\" is unknown",
"feed.counter": "#$0",
"feed.id": "Feed ID",
"feed.last_update": "Last Spot Check",
"feed.name": "Name",
"feed.new": "New feed",
"feed.plural": "Feeds",
"feed.ref_id": "Ref. Feed ID",
"feed.status": "Status",
"map.ign_france": "IGN (France)",
"map.ign_spain": "IGN (Spain)",
"map.linz": "LINZ",
"map.natgeo": "National Geographic",
"map.otm": "Open Topo Map",
"map.outdoors": "Mapbox Outdoors",
"map.satellite": "Satellite",
"map.see_on_google": "See on Google Maps",
"map.title": "Base Maps",
"map.usgs": "USGS",
"media.add_on": "added on $0",
"media.click_watch": "Click to watch video",
"media.click_zoom": "Click to zoom",
"media.comment_update": "Comment of media \"$0\" updated",
"media.count": "Media $0 / $1",
"media.image": "Picture",
"media.image_taken": "taken on $0",
"media.images": "Pictures",
"media.nearby": "Nearby pictures",
"media.no_id": "Missing Media ID in request",
"media.video": "Video",
"media.video_taken": "shot on $0",
"meta.locale": "en_NZ",
"meta.page_og_desc": "Keep contact with François when he is off hiking",
"newsletter.email_exists": "This email is already subscribed. You can unsubscribe by clicking on the button above.",
"newsletter.email_placeholder": "my@email.com",
"newsletter.invalid_email": "It doesn't look like an email",
"newsletter.subscribe": "Subscribe",
"newsletter.subscribed": "Thanks! You'll receive a confirmation email shortly",
"newsletter.subscribed_desc": "You're all set. We'll send you updates as soon as we get them",
"newsletter.title": "Keep in touch!",
"newsletter.unknown_email": "Unknown email address",
"newsletter.unsubscribe": "Unsubscribe",
"newsletter.unsubscribed": "Done. No more junk mail from us",
"newsletter.unsubscribed_desc": "Write down your email address and we'll send you François' position as soon as we get it :)",
"post.copy_to_clipboard": "Copy direct link to clipboard",
"post.link_copied": "Link copied!",
"post.message": "Message",
"post.name": "Name",
"post.new_message": "New message",
"project.code_name": "Code name",
"project.end": "End",
"project.hikes": "Hikes",
"project.id": "Project ID",
"project.mode": "Mode",
"project.modes.blog": "Active Project",
"project.modes.histo": "Archived Project",
"project.modes.previz": "Project in preparation",
"project.new": "New Project",
"project.plural": "Projects",
"project.single": "Project",
"project.start": "Start",
"project.update_messages": "Update project messages",
"spot.id": "Spot ID",
"spot.model": "Model",
"spot.name": "Spot Name",
"spot.plural": "Spots",
"spot.ref_id": "Ref. Spot ID",
"stats.distance": "Distance",
"stats.elevation": "Elevation",
"stats.legend": "Legend",
"stats.segment_length": "Segment length",
"stats.type": "Track Type",
"time.city": "$0 Time",
"time.date_time": "$0 at $1",
"time.local": "$0 Local Time",
"time.user": "$0 Your Time",
"time.zone": "Time Zone",
"track.download": "Download GPX Track",
"track.hitchhiking": "Hitchhiking",
"track.main": "Main track",
"track.off-track": "Off-track",
"unit.day": "day",
"unit.day_short": "D",
"unit.days": "days",
"unit.hour": "h",
"upload.media.exists": "Picture $0 already exists",
"upload.media.title": "Picture & Video Uploads",
"upload.mode_archived": "Project \"$0\" is archived. No upload allowed",
"upload.position.new": "New Position",
"upload.position.title": "Additional Position",
"upload.success": "$0 uploaded successfully",
"user.active": "Active Users",
"user.clearance": "Clearance",
"user.id": "User ID",
"user.language": "Language",
"user.name": "User Name",
"weather.clear-day": "Cloud cover is less than 20% during daytime",
"weather.clear-night": "Cloud cover is less than 20% during nighttime",
"weather.cloudy": "Cloud cover is greater than 90%",
"weather.fog": "Visibility is low (less than one kilometer or mile)",
"weather.hail": "Hail showers",
"weather.partly-cloudy-day": "Cloud cover is greater than 20% during daytime",
"weather.partly-cloudy-night": "Cloud cover is greater than 20% during nighttime",
"weather.rain": "Amount of rainfall is greater than zero",
"weather.rain-snow": "Snow and rain showers",
"weather.rain-snow-showers-day": "Possible rain/snow throughout the day",
"weather.rain-snow-showers-night": "Possible rain/snow throughout the night",
"weather.showers-day": "Rain showers during the day",
"weather.showers-night": "Rain showers during the night",
"weather.sleet": "Sleet",
"weather.snow": "Amount of snow is greater than zero",
"weather.snow-showers-day": "Periods of snow during the day",
"weather.snow-showers-night": "Periods of snow during the night",
"weather.thunder": "Thunderstorms",
"weather.thunder-rain": "Thunderstorms throughout the day or night",
"weather.thunder-showers-day": "Possible thunderstorms throughout the day",
"weather.thunder-showers-night": "Possible thunderstorms throughout the night",
"weather.wind": "Wind speed is high (greater than 30 kph or mph)"
"action": {
"back": "Back",
"delete": "Delete",
"save": "Save",
"send": "Send"
},
"admin": {
"config": "Config",
"create_success": "Created",
"delete_success": "Deleted",
"save_success": "Saved",
"title": "Admin Panel",
"toolbox": "Toolbox",
"upload": "Upload"
},
"credits": {
"git": "Git Repository",
"license": "under GPLv3 license",
"project": "Spotty Project"
},
"email": {
"confirmation": {
"body_1": "Thank you for checking in on my wanderings :). I'll make sure to keep you posted on my progress along the trail.",
"body_2": "I usually check-in once a day, plus sometimes on special events, like successful peak ascents. I am using a GPS-based device (PLB) which does not require phone reception to work. Thus the messages should be pretty frequent, but, being awestruck by the beauty of nature, I could also just forget to send a signal once in a while. So do not worry if you don't receive anything for a couple of days.",
"body_3": "If I've posted some pictures recently, you should also get them in the same email.",
"conclusion": "See you down the road!",
"preheader": "Thanks for keeping in touch!",
"signature": "--François",
"subject": "Successful Registration",
"thanks_subject": "You're all set!"
},
"unsubscribe": "PS: Changed your mind?",
"unsubscribe_button": "Unsubscribe",
"update": {
"latest_news": "Latest news:",
"preheader": "New position received",
"subject": "Spotted!",
"title": "Message"
}
},
"error": {
"commit_db": "Issue committing to DB",
"impossible_value": "Value \"$0\" is not possible for field \"$1\"",
"no_auth": "No authorization",
"unknown_field": "Field \"$0\" is unknown"
},
"feed": {
"counter": "#$0",
"id": "Feed ID",
"last_update": "Last Spot Check",
"name": "Name",
"new": "New feed",
"plural": "Feeds",
"ref_id": "Ref. Feed ID",
"status": "Status"
},
"map": {
"ign_france": "IGN (France)",
"ign_spain": "IGN (Spain)",
"linz": "LINZ",
"natgeo": "National Geographic",
"otm": "Open Topo Map",
"outdoors": "Mapbox Outdoors",
"satellite": "Satellite",
"see_on_google": "See on Google Maps",
"title": "Base Maps",
"usgs": "USGS"
},
"media": {
"add_on": "added on $0",
"click_watch": "Click to watch video",
"click_zoom": "Click to zoom",
"comment_update": "Comment of media \"$0\" updated",
"count": "Media $0 / $1",
"image": "Picture",
"image_taken": "taken on $0",
"images": "Pictures",
"nearby": "Nearby pictures",
"no_id": "Missing Media ID in request",
"video": "Video",
"video_taken": "shot on $0"
},
"meta": {
"locale": "en_NZ",
"page_og_desc": "Keep contact with François when he is off hiking"
},
"newsletter": {
"email_exists": "This email is already subscribed. You can unsubscribe by clicking on the button above.",
"email_placeholder": "my@email.com",
"invalid_email": "It doesn't look like an email",
"subscribe": "Subscribe",
"subscribed": "Thanks! You'll receive a confirmation email shortly",
"subscribed_desc": "You're all set. We'll send you updates as soon as we get them",
"title": "Keep in touch!",
"unknown_email": "Unknown email address",
"unsubscribe": "Unsubscribe",
"unsubscribed": "Done. No more junk mail from us",
"unsubscribed_desc": "Write down your email address and we'll send you François' position as soon as we get it :)"
},
"post": {
"copy_to_clipboard": "Copy direct link to clipboard",
"link_copied": "Link copied!",
"message": "Message",
"name": "Name",
"new_message": "New message"
},
"project": {
"code_name": "Code name",
"end": "End",
"hikes": "Hikes",
"id": "Project ID",
"mode": "Mode",
"modes": {
"blog": "Active Project",
"histo": "Archived Project",
"previz": "Project in preparation"
},
"new": "New Project",
"plural": "Projects",
"single": "Project",
"start": "Start",
"update_messages": "Update project messages"
},
"spot": {
"id": "Spot ID",
"model": "Model",
"name": "Spot Name",
"plural": "Spots",
"ref_id": "Ref. Spot ID"
},
"stats": {
"distance": "Distance",
"elevation": "Elevation",
"legend": "Legend",
"segment_length": "Segment length",
"type": "Track Type"
},
"time": {
"city": "$0 Time",
"date_time": "$0 at $1",
"local": "$0 Local Time",
"user": "$0 Your Time",
"zone": "Time Zone"
},
"track": {
"download": "Download GPX Track",
"hitchhiking": "Hitchhiking",
"main": "Main track",
"off-track": "Off-track"
},
"unit": {
"day": "day",
"day_short": "D",
"days": "days",
"hour": "h"
},
"upload": {
"media": {
"exists": "Picture $0 already exists",
"title": "Picture & Video Uploads"
},
"mode_archived": "Project \"$0\" is archived. No upload allowed",
"position": {
"new": "New Position",
"title": "Additional Position"
},
"success": "$0 uploaded successfully"
},
"user": {
"active": "Active Users",
"clearance": "Clearance",
"id": "User ID",
"language": "Language",
"name": "User Name"
},
"weather": {
"clear-day": "Cloud cover is less than 20% during daytime",
"clear-night": "Cloud cover is less than 20% during nighttime",
"cloudy": "Cloud cover is greater than 90%",
"fog": "Visibility is low (less than one kilometer or mile)",
"hail": "Hail showers",
"partly-cloudy-day": "Cloud cover is greater than 20% during daytime",
"partly-cloudy-night": "Cloud cover is greater than 20% during nighttime",
"rain": "Amount of rainfall is greater than zero",
"rain-snow": "Snow and rain showers",
"rain-snow-showers-day": "Possible rain/snow throughout the day",
"rain-snow-showers-night": "Possible rain/snow throughout the night",
"showers-day": "Rain showers during the day",
"showers-night": "Rain showers during the night",
"sleet": "Sleet",
"snow": "Amount of snow is greater than zero",
"snow-showers-day": "Periods of snow during the day",
"snow-showers-night": "Periods of snow during the night",
"thunder": "Thunderstorms",
"thunder-rain": "Thunderstorms throughout the day or night",
"thunder-showers-day": "Possible thunderstorms throughout the day",
"thunder-showers-night": "Possible thunderstorms throughout the night",
"wind": "Wind speed is high (greater than 30 kph or mph)"
}
}