Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Public release of Sindarin (sjn) translation easter egg #4033

Merged
merged 1 commit into from Mar 18, 2022
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.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Binary file added demo/TengwarTelcontar.woff2
Binary file not shown.
11 changes: 10 additions & 1 deletion demo/demo.less
Expand Up @@ -80,7 +80,16 @@ main.mdl-layout__content {

html, body {
/* Ensure everything has a consistent font. */
font-family: Roboto, Helvetica, Arial, sans-serif;
font-family: Roboto-Regular, Roboto, sans-serif, TengwarTelcontar;
}

// This font supports the Sindarin (sjn) translation.
@font-face {
font-family: TengwarTelcontar;
// This could be served from demo/ (uncompiled) or dist (compiled).
src: url("../demo/TengwarTelcontar.woff2") format("woff2");
font-weight: normal;
font-style: normal;
}

/* Change the default opacity of the ripple container, to get around an iOS bug.
Expand Down
2 changes: 1 addition & 1 deletion ui/less/containers.less
Expand Up @@ -23,7 +23,7 @@

/* Set the fonts for all other content. */
* {
font-family: Roboto-Regular, Roboto, sans-serif;
font-family: Roboto-Regular, Roboto, sans-serif, TengwarTelcontar;
}
}

Expand Down
257 changes: 257 additions & 0 deletions ui/locales/sjn-translations.yaml
@@ -0,0 +1,257 @@
# Shaka Player Sindarin (Elvish) Translations
# Copyright 2022 Google LLC
# SPDX-License-Identifier: Apache-2.0

# This documents the manual translation of our UI into Sindarin.
# This file is not consumed automatically.

# References:
# - Font: http://freetengwar.sourceforge.net/tengtelc.html
# - Transliteration & dictionary: https://www.tecendil.com/?mode=sindarin
# - Dictionary: https://www.jrrvf.com/hisweloke/sindar/
# - Dictionary: https://www.elfdict.com/w/run/s?include_old=1
# - Grammar: https://www.elvish.org/gwaith/sindarin_intro.htm
# - Grammar: https://eldamo.org/content/grammar-indexes/grammars-s.html
# - Imperative ending: -o
# - Thesaurus: https://www.thesaurus.com/

translations:
- key: AD_DURATION
english: "Ad duration"
sjn-literal: "time for break for money"
sjn-roman: "lû an hastië an mirian"
sjn: "    "

- key: AD_PROGRESS
english: "Ad [AD_ON] of [NUM_ADS]"
sjn-literal: "break for money [A] / [B]"
sjn-roman: "hastië an mirian [A] / [B]"
sjn: "   [AD_ON] / [NUM_ADS]"

- key: AD_TIME
english: "Ad: [AD_TIME]"
sjn-literal: "break for money: [A]"
sjn-roman: "hastië an mirian: [A]"
sjn: "  : [AD_TIME]"

- key: AIRPLAY
english: "AirPlay"
sjn-literal: "heavens-make-play"
sjn-roman: "menelnortho"
sjn: ""

- key: AUTO_QUALITY
english: "Auto"
sjn-literal: "adapt/make fit"
sjn-roman: "cammo"
sjn: ""

- key: BACK
english: "Back"
sjn-literal: "return"
sjn-roman: "dan"
sjn: ""

- key: CAPTIONS
english: "Captions"
sjn-literal: "words written"
sjn-roman: "pith teithiel"
sjn: " "

- key: CAST
english: "Cast..."
sjn-literal: "throw"
sjn-roman: "hanto"
sjn: ""

- key: ENTER_LOOP_MODE
english: "Loop the current video"
sjn-literal: "enter repeating"
sjn-roman: "minno enquetië"
sjn: " "

- key: ENTER_PICTURE_IN_PICTURE
english: "Enter Picture-in-Picture"
sjn-literal: "enter mind-picture within mind-picture"
sjn-roman: "minno fanwos bir fanwos"
sjn: "   "

- key: EXIT_FULL_SCREEN
english: "Exit full screen"
sjn-literal: "escape mind-picture full"
sjn-roman: "uthro fanwos panta"
sjn: "  "

- key: EXIT_LOOP_MODE
english: "Stop looping the current video"
sjn-literal: "escape repeating"
sjn-roman: "uthro enquetië"
sjn: " "

- key: EXIT_PICTURE_IN_PICTURE
english: "Exit Picture-in-Picture"
sjn-literal: "escape mind-picture within mind-picture"
sjn-roman: "uthro fanwos bir fanwos"
sjn: "   "

- key: FAST_FORWARD
english: "Fast-forward"
sjn-literal: "make-run fast"
sjn-roman: "northo lim"
sjn: " "

- key: FULL_SCREEN
english: "Full screen"
sjn-literal: "mind-picture full"
sjn-roman: "fanwos panta"
sjn: " "

- key: LANGUAGE
english: "Language"
sjn-literal: "language"
sjn-roman: "lambë"
sjn: ""

- key: LIVE
english: "Live"
sjn-literal: "freshest"
sjn-roman: "cîrwain"
sjn: ""

- key: LOOP
english: "Loop"
sjn-literal: "repeat"
sjn-roman: "enqueto"
sjn: ""

- key: MORE_SETTINGS
english: "More settings"
sjn-literal: "more+choices"
sjn-roman: "galainc"
sjn: ""

- key: MULTIPLE_LANGUAGES
english: "Multiple languages"
sjn-literal: "language without count"
sjn-roman: "lambë arnoediad"
sjn: " "

- key: MUTE
english: "Mute"
sjn-literal: "silence"
sjn-roman: "dîn"
sjn: ""

- key: NOT_APPLICABLE
english: "Not applicable"
sjn-literal: "not important"
sjn-roman: "la bâl"
sjn: " "

- key: OFF
english: "Off"
sjn-literal: "nothing"
sjn-roman: "unt"
sjn: ""

- key: ON
english: "On"
sjn-literal: "active"
sjn-roman: "carweg"
sjn: ""

- key: PAUSE
english: "Pause"
sjn-literal: "tarry/wait/pause"
sjn-roman: "hasto"
sjn: ""

- key: PICTURE_IN_PICTURE
english: "Picture-in-picture"
sjn-literal: "mind-picture within mind-picture"
sjn-roman: "fanwos bir fanwos"
sjn: "  "

- key: PLAY
english: "Play"
sjn-literal: "make-run"
sjn-roman: "northo"
sjn: ""

- key: PLAYBACK_RATE
english: "Playback speed"
sjn-literal: "speed"
sjn-roman: "lintië"
sjn: ""

- key: REPLAY
english: "Replay"
sjn-literal: "make-run again"
sjn-roman: "adnortho"
sjn: ""

- key: RESOLUTION
english: "Resolution"
sjn-literal: "value/preciousness"
sjn-roman: "meiras"
sjn: ""

- key: REWIND
english: "Rewind"
sjn-literal: "make-run backwards"
sjn-roman: "northo abont"
sjn: " "

- key: SEEK
english: "Seek"
sjn-literal: "time"
sjn-roman: "lû"
sjn: ""

- key: SKIP_AD
english: "Skip Ad"
sjn-literal: "leap across break for money"
sjn-roman: "cabo thar hastië an mirian"
sjn: "    "

- key: SKIP_TO_LIVE
english: "Skip ahead to live"
sjn-literal: "leap to freshest"
sjn-roman: "cabo na cîrwain"
sjn: "  "

- key: STATISTICS
english: "Statistics"
sjn-literal: "interrogate numbers"
sjn-roman: "cetho neth"
sjn: " "

- key: SUBTITLE_FORCED
english: "Forced"
sjn-literal: "words written firm/abiding"
sjn-roman: "pith teithiel taug"
sjn: "  "

- key: UNDETERMINED_LANGUAGE
english: "Undetermined"
sjn-literal: "not known"
sjn-roman: "la sinnen"
sjn: " "

- key: UNMUTE
english: "Unmute"
sjn-literal: "noise/sound"
sjn-roman: "lhôn"
sjn: ""

- key: UNRECOGNIZED_LANGUAGE
english: "Unrecognized"
sjn-literal: "not known"
sjn-roman: "la sinnen"
sjn: " "

- key: VOLUME
english: "Volume"
sjn-literal: "loud(ness)"
sjn-roman: "brui"
sjn: ""
42 changes: 42 additions & 0 deletions ui/locales/sjn.json
@@ -0,0 +1,42 @@
{
"AD_DURATION": "    ",
"AD_PROGRESS": "   [AD_ON] / [NUM_ADS]",
"AD_TIME": "  : [AD_TIME]",
"AIRPLAY": "",
"AUTO_QUALITY": "",
"BACK": "",
"CAPTIONS": " ",
"CAST": "",
"ENTER_LOOP_MODE": " ",
"ENTER_PICTURE_IN_PICTURE": "   ",
"EXIT_FULL_SCREEN": "  ",
"EXIT_LOOP_MODE": " ",
"EXIT_PICTURE_IN_PICTURE": "   ",
"FAST_FORWARD": " ",
"FULL_SCREEN": " ",
"LANGUAGE": "",
"LIVE": "",
"LOOP": "",
"MORE_SETTINGS": "",
"MULTIPLE_LANGUAGES": " ",
"MUTE": "",
"NOT_APPLICABLE": " ",
"OFF": "",
"ON": "",
"PAUSE": "",
"PICTURE_IN_PICTURE": "  ",
"PLAY": "",
"PLAYBACK_RATE": "",
"REPLAY": "",
"RESOLUTION": "",
"REWIND": " ",
"SEEK": "",
"SKIP_AD": "    ",
"SKIP_TO_LIVE": "  ",
"STATISTICS": " ",
"SUBTITLE_FORCED": "  ",
"UNDETERMINED_LANGUAGE": " ",
"UNMUTE": "",
"UNRECOGNIZED_LANGUAGE": " ",
"VOLUME": ""
}