Transliterate English text using the Greek alphabet: Difference between revisions

Adding python task
m (→‎{{header|Raku}}: add markup)
(Adding python task)
 
(27 intermediate revisions by 11 users not shown)
Line 1:
{{draft task}}
[[Category: String manipulation]]
[[Category:Simple]]
Line 96:
<br>
 
 
=={{header|J}}==
{{trans|Julia}}
Implementation:
<syntaxhighlight lang="j">endings=: {{
W=. (#~ tolower=toupper) (32}.127{.a.)-.":1234567890x
,(x,"1 0 W);&(7&u:)"1 y,"1 0 W
}}
 
trans=: rplc&(7 u:L:0 ".{{)n
'ch';'χ'; 'th';'θ'; 'ps';'ψ'; 'ph';'f'; ('s' endings 'ς'), 'Ch';'Χ';
'Th';'Θ'; 'Ps';'Ψ'; 'Ph';'F'; 'ee';'h'; 'ck';'κ'; 'rh';'r'; 'kh';'χ';
'Kh';'Χ'; 'oo';'w'; 'a';'α'; 'b';'β'; 'c';'κ'; 'd';'δ'; 'e';'ε';
'f';'φ'; 'g';'γ'; 'h';'η'; 'i';'ι'; 'j';'ι'; 'k';'κ'; 'l';'λ';
'm';'μ'; 'n';'ν'; 'o';'ο'; 'p';'π'; 'q';'κ'; 'r';'ρ'; 's';'σ';
't';'τ'; 'u';'υ'; 'v';'β'; 'w';'ω'; 'x';'ξ'; 'y';'υ'; 'z';'ζ';
'D';'Δ'; 'F';'Φ'; 'G';'Γ'; 'J';'I'; 'L';'Λ'; 'P';'Π'; 'Q';'Κ';
'R';'Ρ'; 'S';'Σ'; 'Y';'U'; 'W';'Ω'; 'X';'Ξ'
}} -.LF)^:_</syntaxhighlight>
 
Examples:
<syntaxhighlight lang="j">txt1=:'The quick brown fox jumped over the lazy dog.'
txt2=:{{)n
I was looking at some rhododendrons in my back garden,
dressed in my khaki shorts, when the telephone rang.
As I answered it, I cheerfully glimpsed that the July sun
caused a fragment of black pine wax to ooze on the velvet quilt
laying in my patio.
}}
 
txt3=: 'sphinx of black quartz, judge my vow.'
 
trans txt1
Θε κυικ βροων φοξ ιυμπεδ οβερ θε λαζυ δογ.
trans txt2
I ωας λωκινγ ατ σομε ροδοδενδρονς ιν μυ βακ γαρδεν,
δρεσσεδ ιν μυ χακι σηορτς, ωηεν θε τελεφονε ρανγ.
Aς I ανσωερεδ ιτ, I χηρφυλλυ γλιμψεδ θατ θε Iυλυ συν
καυσεδ α φραγμεντ οφ βλακ πινε ωαξ το ωζε ον θε βελβετ κυιλτ
λαυινγ ιν μυ πατιο.
 
trans txt3
σφινξ οφ βλακ κυαρτζ, ιυδγε μυ βοω.</syntaxhighlight>
 
=={{header|Java}}==
<syntaxhighlight lang="java">
import java.util.List;
 
public final class TransliterateEnglishTextUsingTheGreekAlphabet {
 
public static void main(String[] args) {
List<String> tests = List.of(
"The quick brown fox jumps over the lazy dog.", // Note: "jumps" not "jumped"
"""
I was looking at some rhododendrons in my back garden,
dressed in my khaki shorts, when the telephone rang.
 
As I answered it, I cheerfully glimpsed that the July sun
caused a fragment of black pine wax to ooze on the velvet quilt
laying in my patio.""",
"sphinx of black quartz, judge my vow.");
String[][] pairs = new String[][] {
{ "CH", "Χ" }, { "Ch", "Χ" }, { "ch", "χ" }, { "CK", "Κ" }, { "Ck", "Κ" }, { "ck", "κ" },
{ "EE", "Η" }, { "Ee", "Η" }, { "ee", "η" }, { "KH", "Χ" }, { "Kh", "Χ" }, { "kh", "χ" },
{ "OO", "Ω" }, { "Oo", "Ω" }, { "oo", "ω" }, { "PH", "Φ" }, { "Ph", "Φ" }, { "ph", "ϕ" },
{ "PS", "Ψ" }, { "Ps", "Ψ" }, { "ps", "ψ" }, { "RH", "Ρ" }, { "Rh", "Ρ" }, { "rh", "ρ" },
{ "TH", "Θ" }, { "Th", "Θ" }, { "th", "θ" }, { "A", "Α" }, { "a", "α" }, { "B", "Β" },
{ "b", "β" }, { "C", "Κ" }, { "c", "κ" }, { "D", "Δ" }, { "d", "δ" }, { "E", "Ε" }, { "e", "ε" },
{ "F", "Φ" }, { "f", "ϕ" }, { "G", "Γ" }, { "g", "γ" }, { "H", "Ε" }, { "h", "ε" }, { "I", "Ι" },
{ "i", "ι" }, { "J", "Ι" }, { "j", "ι" }, { "K", "Κ" }, { "k", "κ" }, { "L", "Λ" }, { "l", "λ" },
{ "M", "Μ" }, { "m", "μ" }, { "N", "Ν" }, { "n", "ν" }, { "O", "Ο" }, { "o", "ο" }, { "P", "Π" },
{ "p", "π" }, { "Q", "Κ" }, { "q", "κ" }, { "R", "Ρ" }, { "r", "ρ" }, { "S", "Σ" }, { "s", "σ" },
{ "T", "Τ" }, { "t", "τ" }, { "U", "Υ" }, { "u", "υ" }, { "V", "Β" }, { "v", "β" }, { "W", "Ω" },
{ "w", "ω" }, { "X", "Ξ" }, { "x", "ξ" }, { "Y", "Υ" }, { "y", "υ" }, { "Z", "Ζ" }, { "z", "ζ" } };
 
for ( String test : tests ) {
String greek = test;
for ( int i = 0; i < greek.length(); i++ ) {
if ( greek.charAt(i) == 's' && ! Character.isAlphabetic(greek.charAt(i + 1)) ) {
greek = greek.substring(0, i) + 'ς' + greek.substring(i + 1);
}
}
for ( String[] pair : pairs ) {
greek = greek.replace(pair[0], pair[1]);
}
System.out.println(test + System.lineSeparator() + " =>" + System.lineSeparator() + greek);
System.out.println("=".repeat(65));
}
}
 
}
</syntaxhighlight>
<pre>
The quick brown fox jumps over the lazy dog.
=>
Θε κυικ βροων ϕοξ ιυμπς οβερ θε λαζυ δογ.
=================================================================
I was looking at some rhododendrons in my back garden,
dressed in my khaki shorts, when the telephone rang.
 
As I answered it, I cheerfully glimpsed that the July sun
caused a fragment of black pine wax to ooze on the velvet quilt
laying in my patio.
=>
Ι ωας λωκινγ ατ σομε ροδοδενδρονς ιν μυ βακ γαρδεν,
δρεσσεδ ιν μυ χακι σεορτς, ωεεν θε τελεϕονε ρανγ.
 
Ας Ι ανσωερεδ ιτ, Ι χηρϕυλλυ γλιμψεδ θατ θε Ιυλυ συν
καυσεδ α ϕραγμεντ οϕ βλακ πινε ωαξ το ωζε ον θε βελβετ κυιλτ
λαυινγ ιν μυ πατιο.
=================================================================
sphinx of black quartz, judge my vow.
=>
σϕινξ οϕ βλακ κυαρτζ, ιυδγε μυ βοω.
=================================================================
</pre>
 
=={{header|jq}}==
'''Adapted from [[#Julia]]'''
 
A point of interest in adapting the approach taken in the Julia entry is that, since jq strings for interpolating variables are not themselves JSON strings, the special case of "ς" must be handled differently.
<syntaxhighlight lang=jq>
def texts: [
 
"The quick brown fox jumped over the lazy dog.",
 
"I was looking at some rhododendrons in my back garden,\n" +
"dressed in my khaki shorts, when the telephone rang.\n" +
"\n" +
"As I answered it, I cheerfully glimpsed that the July sun\n" +
"caused a fragment of black pine wax to ooze on the velvet quilt\n" +
"laying in my patio.",
 
"sphinx of black quartz, judge my vow."
];
 
# "ς" is handled separately
def replacements:
{
"ch" : "χ", "th" : "θ", "ps" : "ψ", "ph" : "f", "Ch" : "Χ",
"Th" : "Θ", "Ps" : "Ψ", "Ph" : "F", "ee" : "h", "ck" : "κ", "rh" : "r", "kh" : "χ",
"Kh" : "Χ", "oo" : "w", "a" : "α", "b" : "β", "c" : "κ", "d" : "δ", "e" : "ε",
"f" : "φ", "g" : "γ", "h" : "η", "i" : "ι", "j" : "ι", "k" : "κ", "l" : "λ",
"m" : "μ", "n" : "ν", "o" : "ο", "p" : "π", "q" : "κ", "r" : "ρ", "s" : "σ",
"t" : "τ", "u" : "υ", "v" : "β", "w" : "ω", "x" : "ξ", "y" : "υ", "z" : "ζ",
"D" : "Δ", "F" : "Φ", "G" : "Γ", "J" : "I", "L" : "Λ", "P" : "Π", "Q" : "Κ",
"R" : "Ρ", "S" : "Σ", "Y" : "U", "W" : "Ω", "X" : "Ξ" };
 
def translate($replacements):
gsub("s(?<W>\\W)"; "ς\(.W)")
| reduce ($replacements|keys_unsorted[]) as $key (.;
gsub($key; $replacements[$key])) ;
 
replacements as $replacements
| texts[]
| ., "=>", translate($replacements), ""
</syntaxhighlight>
'''Invocation'''
<pre>
jq -nr -f transliterate-english-using-Greek.jq
</pre>
{{Output}}
<pre>
The quick brown fox jumped over the lazy dog.
=>
Θε κυικ βροων φοξ ιυμπεδ οβερ θε λαζυ δογ.
 
I was looking at some rhododendrons in my back garden,
dressed in my khaki shorts, when the telephone rang.
=>
I ωασ λωκινγ ατ σομε ροδοδενδρονσ ιν μυ βακ γαρδεν,
δρεσσεδ ιν μυ χακι σηορτσ, ωηεν θε τελεφονε ρανγ.
 
As I answered it, I cheerfully glimpsed that the July sun
caused a fragment of black pine wax to ooze on the velvet quilt
laying in my patio.
=>
Aσ I ανσωερεδ ιτ, I χηρφυλλυ γλιμψεδ θατ θε Iυλυ συν
καυσεδ α φραγμεντ οφ βλακ πινε ωαξ το ωζε ον θε βελβετ κυιλτ
λαυινγ ιν μυ πατιο.
 
sphinx of black quartz, judge my vow.
=>
σφινξ οφ βλακ κυαρτζ, ιυδγε μυ βοω.
</pre>
 
=={{header|Julia}}==
<syntaxhighlight lang="julia">const texts = [
{{improve|Julia|Not transliterating 'y'. See cheerfully, lazy, July, my. Not transliterating 'k' see khaki, quick, back, black}}
<lang ruby>const texts = [
"""The quick brown fox jumped over the lazy dog.""",
"""I was looking at some rhododendrons in my back garden,
Line 110 ⟶ 298:
 
const replacements = [
"ch" => "χ", "th" => "θ", "ps" => "ψ", "ph" => "f", r"s(\W)" => s"ς\1", "Ch" => "Χ",
"ChTh" => "ΧΘ", "ThPs" => "ΘΨ", "PsPh" => "ΨF", "Phee" => "Fh", "eeck" => "hκ", "ckrh" => "r", "kh" => "kχ",
"rhKh" => "rΧ", "khoo" => "χw", "ooa" => "wα", "ab" => "αβ", "bc" => "βκ", "d" => "δ", "e" => "ε",
"ef" => "εφ", "fg" => "φγ", "gh" => "γη", "hi" => "ηι", "ij" => "ι", "jk" => "ικ", "l" => "λ",
"l" => "λ", "m" => "μ", "n" => "ν", "o" => "ο", "p" => "π", "q" => "κ", "r" => "ρ", "s" => "σ",
"rt" => "ρτ", "su" => "συ", "tv" => "τβ", "uw" => "υω", "vx" => "βξ", "wy" => "ωυ", "z" => "ζ",
"xD" => "ξΔ", "zF" => "ζΦ", "AG" => "ΑΓ", "BJ" => "ΒI", "DL" => "ΔΛ", "P" => "Π", "EQ" => "ΕΚ",
"FR" => "ΦΡ", "GS" => "ΓΣ", "HY" => "ΗU", "IW" => "ΙΩ", "JX" => "IΞ", "L" => "Λ",]
"M" => "Μ", "N" => "Ν", "O" => "Ο", "P" => "Π", "Q" => "Κ", "R" => "Ρ",
"S" => "Σ", "T" => "Τ", "U" => "Υ", "W" => "Ω", "X" => "Ξ", "Z" => "Ζ"]
 
for txt in texts
Line 128 ⟶ 314:
println("$txt\n", "="^65)
end
</langsyntaxhighlight>{{out}}
<pre>
The quick brown fox jumped over the lazy dog.
=>
Θε κυιkκυικ βροων φοξ ιυμπεδ οβερ θε λαζyλαζυ δογ.
=================================================================
I was looking at some rhododendrons in my back garden,
Line 141 ⟶ 327:
laying in my patio.
=>
ΙI ωας λωkινγλωκινγ ατ σομε ροδοδενδρονς ιν μyμυ βαkβακ γαρδεν,
δρεσσεδ ιν μyμυ χαkιχακι σηορτς, ωηεν θε τελεφονε ρανγ.
 
Ας ΙI ανσωερεδ ιτ, ΙI χηρφυλλyχηρφυλλυ γλιμψεδ θατ θε IυλyIυλυ συν
cαυσεδκαυσεδ α φραγμεντ οφ βλαkβλακ πινε ωαξ το ωζε ον θε βελβετ κυιλτ
λαyινγλαυινγ ιν μyμυ πατιο.
=================================================================
sphinx of black quartz, judge my vow.
=>
σφινξ οφ βλαkβλακ κυαρτζ, ιυδγε μyμυ βοω.
=================================================================
</pre>
=={{header|M2000 Interpreter}}==
 
<syntaxhighlight lang="m2000 interpreter">
process1=lambda -> {
a=list:="ee":="η", "ch":="χ", "kh":="χ", "ph":="φ", "ps":="ψ", "th":="θ", "ck":="κ", "oo":="ω", "rh":="ρ"
b=list:="a":="α","b":="β","v":="β","g":="γ","d":="δ","e":="ε","z":="ζ","h":="η","i":="ι","j":="ι","c":="κ"
append b, "k":="κ","q":="κ","l":="λ","m":="μ","n":="ν","x":="ξ","o":="ο","p":="π","r":="ρ"
append b, "s":="σ","t":="τ","u":="υ","y":="υ","f":="φ","w":="ω"
=lambda a, b (s as string, no as integer) -> {
long i=1, j=len(s)
string r, rc, crlf={
}
while i<=j
if exist(a, lcase$(mid$(s,i,2))) then
rc=eval$(a)
if mid$(s,i,1)<>left$(eval$(a!),1) then
r+=ucase$(left$(rc,1))
else
r+=rc
end if
i+=2
else.if exist(b,lcase$(mid$(s,i,1))) then
rc=eval$(b) // eval$(b!) is the key
if mid$(s,i,1)<>eval$(b!) then
r+=ucase$(rc)
else.if rc="σ" then
if exist(b,lcase$(mid$(s,i+1,1))) then
r+=rc
else
r+="ς"
end if
else
r+=rc
end if
i++
else
r+=mid$(s,i,1)
i++
end if
end while
=">>>> Text "+no+crlf+s+crlf+" =>"+crlf+r+crlf+crlf
}
}
 
trans=process1()
 
report trans("The quick brown fox jumped over the lazy dog.", 1)
 
eng$={I was looking at some rhododendrons in my back garden,
dressed in my khaki shorts, when the telephone rang.
 
As I answered it, I cheerfully glimpsed that the July sun
caused a fragment of black pine wax to ooze on the velvet quilt
laying in my patio.}
Report trans(eng$, 2)
 
Report trans("sphinx of black quartz, judge my vow.", 3)
</syntaxhighlight>
{{out}}
<pre>
>>>> Text 1
The quick brown fox jumped over the lazy dog.
=>
Θε κυικ βροων φοξ ιυμπεδ οβερ θε λαζυ δογ.
 
>>>> Text 2
I was looking at some rhododendrons in my back garden,
dressed in my khaki shorts, when the telephone rang.
 
As I answered it, I cheerfully glimpsed that the July sun
caused a fragment of black pine wax to ooze on the velvet quilt
laying in my patio.
=>
Ι ωας λωκινγ ατ σομε ροδοδενδρονς ιν μυ βακ γαρδεν,
δρεσσεδ ιν μυ χακι σηορτς, ωηεν θε τελεφονε ρανγ.
 
Ας Ι ανσωερεδ ιτ, Ι χηρφυλλυ γλιμψεδ θατ θε Ιυλυ συν
καυσεδ α φραγμεντ οφ βλακ πινε ωαξ το ωζε ον θε βελβετ κυιλτ
λαυινγ ιν μυ πατιο.
 
>>>> Text 3
sphinx of black quartz, judge my vow.
=>
σφινξ οφ βλακ κυαρτζ, ιυδγε μυ βοω.
</pre>
 
=={{header|Nim}}==
<syntaxhighlight lang="Nim">import std/[strutils, unicode]
 
const Text = """I was looking at some rhododendrons in my back garden,
dressed in my khaki shorts, when the telephone rang.
 
As I answered it, I cheerfully glimpsed that the July sun
caused a fragment of black pine wax to ooze on the velvet quilt
laying in my patio."""
 
# Replacement table.
# It includes greek characters which look like ASCII ones but are actually different
# and coded using specific Unicode code points (as Α, Β, Ε, etc.).
const Replacements = {"CH": "Χ", "Ch": "Χ", "ch": "χ", "CK": "Κ", "Ck": "Κ", "ck": "κ",
"EE": "Η", "Ee": "Η", "ee": "η", "KH": "Χ", "Kh": "Χ", "kh": "χ",
"OO": "Ω", "Oo": "Ω", "oo": "ω", "PH": "Φ", "Ph": "Φ", "ph": "ϕ",
"PS": "Ψ", "Ps": "Ψ", "ps": "ψ", "RH": "Ρ", "Rh": "Ρ", "rh": "ρ",
"TH": "Θ", "Th": "Θ", "th": "θ", "A": "Α", "a": "α", "B": "Β",
"b": "β", "C": "Κ", "c": "κ", "D": "Δ", "d": "δ", "E": "Ε", "e": "ε",
"F": "Φ", "f": "ϕ", "G": "Γ", "g": "γ", "H": "Ε", "h": "ε", "I": "Ι",
"i": "ι", "J": "Ι", "j": "ι", "K": "Κ", "k": "κ", "L": "Λ", "l": "λ",
"M": "Μ", "m": "μ", "N": "Ν", "n": "ν", "O": "Ο", "o": "ο", "P": "Π",
"p": "π", "Q": "Κ", "q": "κ", "R": "Ρ", "r": "ρ", "S": "Σ", "s": "σ",
"T": "Τ", "t": "τ", "U": "Υ", "u": "υ", "V": "Β", "v": "β", "W": "Ω",
"w": "ω", "X": "Ξ", "x": "ξ", "Y": "Υ", "y": "υ", "Z": "Ζ", "z": "ζ"}
 
# All replacements are done using a single call to "multiReplace".
var text = Text.multiReplace(Replacements)
 
# Replacing "σ" with "ς" is a bit more complicated, as we have to deal with Unicode strings.
const Sigma1 = "σ".toRunes[0]
const Sigma2 = "ς".toRunes[0]
var runes = text.toRunes
for i in 0..runes.high:
let rune = runes[i]
if rune == Sigma1:
if i == runes.high or not runes[i + 1].isAlpha:
runes[i] = Sigma2
echo runes
</syntaxhighlight>
 
{{out}}
<pre>Ι ωας λωκινγ ατ σομε ροδοδενδρονς ιν μυ βακ γαρδεν,
δρεσσεδ ιν μυ χακι σεορτς, ωεεν θε τελεϕονε ρανγ.
 
Ας Ι ανσωερεδ ιτ, Ι χηρϕυλλυ γλιμψεδ θατ θε Ιυλυ συν
καυσεδ α ϕραγμεντ οϕ βλακ πινε ωαξ το ωζε ον θε βελβετ κυιλτ
λαυινγ ιν μυ πατιο.
</pre>
 
=={{header|Perl}}==
<syntaxhighlight lang="perl">use v5.36;
use experimental 'for_list';
use utf8;
binmode(STDOUT, ':utf8');
 
sub to_Greek ($string) {
my %pre = qw<Ph F ck k ee h J I rh r oo w ph f ch χ th θ ps ψ Ch Χ Th Θ Ps Ψ kh χ 's ' 'ς '>;
my %post = split '', 'aαbβdδeεfφgγhηiιjιkκlλmμnνoοpπqκrρsσtτuυvβwωxξyυzζAΑBΒDΔEΕFΦGΓHΗIΙLΛMΜNΝOΟPΠQΚRΡSΣTΤUΥWΩXΞZΖ';
for my ($k,$v) (%pre, %post) { $string =~ s/$k/$v/g }
$string
}
 
say "$_\n" . to_Greek $_ . "\n" for
'The quick brown fox jumped over the lazy dog.',
'I was looking at some rhododendrons in my back garden, dressed in my khaki shorts, when the telephone rang.',
'As I answered it, I cheerfully glimpsed that the July sun caused a fragment of black pine wax to ooze on the velvet quilt laying in my patio.';</syntaxhighlight>
{{out}}
<pre>The quick brown fox jumped over the lazy dog.
Θε κυικ βροων φοξ ιυμπεδ οβερ θε λαζυ δογ.
 
I was looking at some rhododendrons in my back garden, dressed in my khaki shorts, when the telephone rang.
Ι ωασ λωκινγ ατ σομε ροδοδενδρονσ ιν μυ βακ γαρδεν, δρεσσεδ ιν μυ χακι σηορτσ, ωηεν θε τελεφονε ρανγ.
 
As I answered it, I cheerfully glimpsed that the July sun caused a fragment of black pine wax to ooze on the velvet quilt laying in my patio.
Ασ Ι ανσωερεδ ιτ, Ι χηρφυλλυ γλιμψεδ θατ θε Ιυλυ συν cαυσεδ α φραγμεντ οφ βλακ πινε ωαξ το ωζε ον θε βελβετ κυιλτ λαυινγ ιν μυ πατιο.</pre>
 
=={{header|Phix}}==
{{libheader|Phix/online}}
Just for a laugh, figure out the rules directly from the task description.
You can run this online [http://phix.x10.mx/p2js/greek.htm here] (and it'll probably look better in a browser than on a Windows console).
<!--<syntaxhighlight lang="phix">(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #008080;">constant</span> <span style="color: #000000;">task</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"""
alpha a
beta b or v
gamma g
delta d
epsilon e (but not ee)
zeta z
eta h or ee (but not ch, kh, ph, rh or th)
theta th
iota i or j
kappa c, k, q or ck (but not ch and kh)
lambda l
mu m
nu n
xi x
omicron o (but not oo)
pi p (but not ph or ps)
rho r or rh
sigma s (but not ps)
tau t (but not th)
upsilon u or y
phi f or ph
chi ch or kh
psi ps
omega w or oo
"""</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">rules</span><span style="color: #0000FF;">()</span>
<span style="color: #004080;">sequence</span> <span style="color: #000000;">replacements</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">split</span><span style="color: #0000FF;">(</span><span style="color: #000000;">task</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"\n"</span><span style="color: #0000FF;">),</span>
<span style="color: #000000;">suborder</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{{</span><span style="color: #008000;">" "</span><span style="color: #0000FF;">,</span><span style="color: #000000;">49</span><span style="color: #0000FF;">},{</span><span style="color: #008000;">","</span><span style="color: #0000FF;">,</span><span style="color: #000000;">50</span><span style="color: #0000FF;">},{</span><span style="color: #008000;">"."</span><span style="color: #0000FF;">,</span><span style="color: #000000;">51</span><span style="color: #0000FF;">},{</span><span style="color: #008000;">"\n"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">52</span><span style="color: #0000FF;">}},</span>
<span style="color: #0000FF;">{</span><span style="color: #000000;">rs</span><span style="color: #0000FF;">,</span><span style="color: #000000;">ir</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">columnize</span><span style="color: #0000FF;">(</span><span style="color: #000000;">suborder</span><span style="color: #0000FF;">),</span>
<span style="color: #000000;">names</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">reinstate</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">repeat</span><span style="color: #0000FF;">(</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">52</span><span style="color: #0000FF;">),</span><span style="color: #000000;">ir</span><span style="color: #0000FF;">,</span><span style="color: #000000;">rs</span><span style="color: #0000FF;">),</span>
<span style="color: #000000;">done</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{}</span>
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">,</span><span style="color: #000000;">s</span> <span style="color: #008080;">in</span> <span style="color: #000000;">replacements</span> <span style="color: #008080;">do</span>
<span style="color: #000000;">s</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">substitute_all</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">,{</span><span style="color: #008000;">" or"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" and"</span><span style="color: #0000FF;">},{</span><span style="color: #008000;">","</span><span style="color: #0000FF;">,</span><span style="color: #008000;">","</span><span style="color: #0000FF;">})</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">k</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">match</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"(but not "</span><span style="color: #0000FF;">,</span><span style="color: #000000;">s</span><span style="color: #0000FF;">)</span>
<span style="color: #004080;">sequence</span> <span style="color: #000000;">nots</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{}</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">k</span> <span style="color: #008080;">then</span>
<span style="color: #7060A8;">assert</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">[$]=</span><span style="color: #008000;">')'</span> <span style="color: #008080;">and</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">[</span><span style="color: #000000;">k</span><span style="color: #0000FF;">-</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]=</span><span style="color: #008000;">' '</span><span style="color: #0000FF;">)</span>
<span style="color: #000000;">nots</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">split</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">[</span><span style="color: #000000;">k</span><span style="color: #0000FF;">+</span><span style="color: #000000;">9</span><span style="color: #0000FF;">..$-</span><span style="color: #000000;">1</span><span style="color: #0000FF;">],</span><span style="color: #008000;">", "</span><span style="color: #0000FF;">)</span>
<span style="color: #000000;">s</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">..</span><span style="color: #000000;">k</span><span style="color: #0000FF;">-</span><span style="color: #000000;">2</span><span style="color: #0000FF;">]</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #000000;">s</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">split</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">substitute</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">,</span><span style="color: #008000;">","</span><span style="color: #0000FF;">,</span><span style="color: #008000;">""</span><span style="color: #0000FF;">),</span><span style="color: #008000;">" "</span><span style="color: #0000FF;">)</span>
<span style="color: #000000;">names</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"&lt;"</span> <span style="color: #0000FF;">&</span> <span style="color: #7060A8;">proper</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">])</span> <span style="color: #0000FF;">&</span> <span style="color: #008000;">"&gt;"</span>
<span style="color: #000000;">names</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">+</span><span style="color: #000000;">24</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"&lt;"</span> <span style="color: #0000FF;">&</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">&</span> <span style="color: #008000;">"&gt;"</span>
<span style="color: #000000;">s</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">[</span><span style="color: #000000;">2</span><span style="color: #0000FF;">..$]</span>
<span style="color: #000000;">k</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">max</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">apply</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">&</span><span style="color: #000000;">nots</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">length</span><span style="color: #0000FF;">))</span>
<span style="color: #000000;">replacements</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">k</span><span style="color: #0000FF;">,</span><span style="color: #000000;">i</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">reverse</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">),</span><span style="color: #000000;">nots</span><span style="color: #0000FF;">}</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
<span style="color: #000000;">replacements</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">sort</span><span style="color: #0000FF;">(</span><span style="color: #000000;">replacements</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">while</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">replacements</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span>
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">replacements</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">to</span> <span style="color: #000000;">1</span> <span style="color: #008080;">by</span> <span style="color: #0000FF;">-</span><span style="color: #000000;">1</span> <span style="color: #008080;">do</span>
<span style="color: #004080;">bool</span> <span style="color: #000000;">missing</span> <span style="color: #0000FF;">=</span> <span style="color: #004600;">false</span>
<span style="color: #008080;">for</span> <span style="color: #000000;">s</span> <span style="color: #008080;">in</span> <span style="color: #000000;">replacements</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">][</span><span style="color: #000000;">4</span><span style="color: #0000FF;">]</span> <span style="color: #008080;">do</span>
<span style="color: #000000;">missing</span> <span style="color: #0000FF;">+=</span> <span style="color: #008080;">not</span> <span style="color: #7060A8;">find</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">,</span><span style="color: #000000;">done</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
<span style="color: #008080;">if</span> <span style="color: #008080;">not</span> <span style="color: #000000;">missing</span> <span style="color: #008080;">then</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">g</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">replacements</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">][</span><span style="color: #000000;">2</span><span style="color: #0000FF;">]</span>
<span style="color: #008080;">for</span> <span style="color: #000000;">s</span> <span style="color: #008080;">in</span> <span style="color: #000000;">replacements</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">][</span><span style="color: #000000;">3</span><span style="color: #0000FF;">]</span> <span style="color: #008080;">do</span>
<span style="color: #000000;">done</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">append</span><span style="color: #0000FF;">(</span><span style="color: #000000;">done</span><span style="color: #0000FF;">,</span><span style="color: #000000;">s</span><span style="color: #0000FF;">)</span>
<span style="color: #000000;">suborder</span> <span style="color: #0000FF;">&=</span> <span style="color: #0000FF;">{{</span><span style="color: #000000;">s</span><span style="color: #0000FF;">,</span><span style="color: #000000;">g</span><span style="color: #0000FF;">+</span><span style="color: #000000;">24</span><span style="color: #0000FF;">}}</span>
<span style="color: #000000;">s</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">upper</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">])</span>
<span style="color: #000000;">suborder</span> <span style="color: #0000FF;">&=</span> <span style="color: #0000FF;">{{</span><span style="color: #000000;">s</span><span style="color: #0000FF;">,</span><span style="color: #000000;">g</span><span style="color: #0000FF;">}}</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
<span style="color: #000000;">replacements</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">..</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{}</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">while</span>
<span style="color: #008080;">return</span> <span style="color: #0000FF;">{</span><span style="color: #7060A8;">columnize</span><span style="color: #0000FF;">(</span><span style="color: #000000;">suborder</span><span style="color: #0000FF;">),</span><span style="color: #000000;">names</span><span style="color: #0000FF;">}</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #004080;">sequence</span> <span style="color: #0000FF;">{{</span><span style="color: #000000;">sub</span><span style="color: #0000FF;">,</span><span style="color: #000000;">rep</span><span style="color: #0000FF;">},</span><span style="color: #000000;">names</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">rules</span><span style="color: #0000FF;">(),</span>
<span style="color: #000000;">gulp</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">utf8_to_utf32</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ"</span><span style="color: #0000FF;">&</span>
<span style="color: #008000;">"αβγδεζηθικλμνξοπρστυφχψω ,.\n"</span><span style="color: #0000FF;">),</span>
<span style="color: #000000;">text</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"""
The quick brown fox jumped over the lazy dog.
I was looking at some rhododendrons in my back garden,
dressed in my khaki shorts, when the telephone rang.
As I answered it, I cheerfully glimpsed that the July sun
caused a fragment of black pine wax to ooze on the velvet quilt
laying in my patio.
sphinx of black quartz, judge my vow."""</span>
<span style="color: #004080;">string</span> <span style="color: #000000;">g</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">utf32_to_utf8</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">extract</span><span style="color: #0000FF;">(</span><span style="color: #000000;">gulp</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">substitute_all</span><span style="color: #0000FF;">(</span><span style="color: #000000;">text</span><span style="color: #0000FF;">,</span><span style="color: #000000;">sub</span><span style="color: #0000FF;">,</span><span style="color: #000000;">rep</span><span style="color: #0000FF;">)))</span>
<span style="color: #000000;">g</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">substitute_all</span><span style="color: #0000FF;">(</span><span style="color: #000000;">g</span><span style="color: #0000FF;">,{</span><span style="color: #008000;">"σ "</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"σ,"</span><span style="color: #0000FF;">},{</span><span style="color: #008000;">"ς "</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"ς,"</span><span style="color: #0000FF;">})</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%s\n=&gt;\n%s\n\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">text</span><span style="color: #0000FF;">,</span><span style="color: #000000;">g</span><span style="color: #0000FF;">})</span>
<span style="color: #004080;">string</span> <span style="color: #000000;">thedog</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"the dog"</span>
<span style="color: #000000;">g</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">join</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">extract</span><span style="color: #0000FF;">(</span><span style="color: #000000;">names</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">substitute_all</span><span style="color: #0000FF;">(</span><span style="color: #000000;">thedog</span><span style="color: #0000FF;">,</span><span style="color: #000000;">sub</span><span style="color: #0000FF;">,</span><span style="color: #000000;">rep</span><span style="color: #0000FF;">)),</span><span style="color: #008000;">""</span><span style="color: #0000FF;">)</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%s\n=&gt;\n%s\n\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">thedog</span><span style="color: #0000FF;">,</span><span style="color: #000000;">g</span><span style="color: #0000FF;">})</span>
<!--</syntaxhighlight>-->
{{out}}
<pre>
The quick brown fox jumped over the lazy dog.
 
I was looking at some rhododendrons in my back garden,
dressed in my khaki shorts, when the telephone rang.
As I answered it, I cheerfully glimpsed that the July sun
caused a fragment of black pine wax to ooze on the velvet quilt
laying in my patio.
sphinx of black quartz, judge my vow.
=>
Θε κυικ βροων φοξ ιυμπεδ οβερ θε λαζυ δογ.
 
Ι ωας λωκινγ ατ σομε ροδοδενδρονς ιν μυ βακ γαρδεν,
δρεσσεδ ιν μυ χακι σηορτς, ωηεν θε τελεφονε ρανγ.
Ας Ι ανσωερεδ ιτ, Ι χηρφυλλυ γλιμψεδ θατ θε Ιυλυ συν
καυσεδ α φραγμεντ οφ βλακ πινε ωαξ το ωζε ον θε βελβετ κυιλτ
λαυινγ ιν μυ πατιο.
σφινξ οφ βλακ κυαρτζ, ιυδγε μυ βοω.
 
the dog
=>
<theta><epsilon> <delta><omicron><gamma>
</pre>
 
=={{header|Python}}==
{{trans|Julia}}
Implementation:
<syntaxhighlight lang="python">import re
 
# Input texts
texts = [
"The quick brown fox jumped over the lazy dog.",
"""I was looking at some rhododendrons in my back garden,
dressed in my khaki shorts, when the telephone rang.
 
As I answered it, I cheerfully glimpsed that the July sun
caused a fragment of black pine wax to ooze on the velvet quilt
laying in my patio.""",
"sphinx of black quartz, judge my vow."
]
 
# Mapping of replacements
replacements = [
("ch", "χ"), ("th", "θ"), ("ps", "ψ"), ("ph", "f"), (r"s(\W)", r"ς\1"), ("Ch", "Χ"),
("Th", "Θ"), ("Ps", "Ψ"), ("Ph", "F"), ("ee", "h"), ("ck", "κ"), ("rh", "r"), ("kh", "χ"),
("Kh", "Χ"), ("oo", "w"), ("a", "α"), ("b", "β"), ("c", "κ"), ("d", "δ"), ("e", "ε"),
("f", "φ"), ("g", "γ"), ("h", "η"), ("i", "ι"), ("j", "ι"), ("k", "κ"), ("l", "λ"),
("m", "μ"), ("n", "ν"), ("o", "ο"), ("p", "π"), ("q", "κ"), ("r", "ρ"), ("s", "σ"),
("t", "τ"), ("u", "υ"), ("v", "β"), ("w", "ω"), ("x", "ξ"), ("y", "υ"), ("z", "ζ"),
("D", "Δ"), ("F", "Φ"), ("G", "Γ"), ("J", "I"), ("L", "Λ"), ("P", "Π"), ("Q", "Κ"),
("R", "Ρ"), ("S", "Σ"), ("Y", "U"), ("W", "Ω"), ("X", "Ξ")
]
 
# Function to apply replacements
def replace_text(text, replacements):
for old, new in replacements:
if re.search(r"\W", old): # If the key contains special characters, treat it as a regex
text = re.sub(old, new, text)
else:
text = text.replace(old, new)
return text
 
# Apply replacements and print the results
for txt in texts:
print(f"{txt}\n=>")
txt = replace_text(txt, replacements)
print(f"{txt}\n" + "="*65)</syntaxhighlight>{{out}}
<pre>
The quick brown fox jumped over the lazy dog.
=>
Θε κυικ βροων φοξ ιυμπεδ οβερ θε λαζυ δογ.
=================================================================
I was looking at some rhododendrons in my back garden,
dressed in my khaki shorts, when the telephone rang.
 
As I answered it, I cheerfully glimpsed that the July sun
caused a fragment of black pine wax to ooze on the velvet quilt
laying in my patio.
=>
I ωας λωκινγ ατ σομε ροδοδενδρονς ιν μυ βακ γαρδεν,
δρεσσεδ ιν μυ χακι σηορτς, ωηεν θε τελεφονε ρανγ.
 
Aς I ανσωερεδ ιτ, I χηρφυλλυ γλιμψεδ θατ θε Iυλυ συν
καυσεδ α φραγμεντ οφ βλακ πινε ωαξ το ωζε ον θε βελβετ κυιλτ
λαυινγ ιν μυ πατιο.
=================================================================
sphinx of black quartz, judge my vow.
=>
σφινξ οφ βλακ κυαρτζ, ιυδγε μυ βοω.
=================================================================
</pre>
 
=={{header|Raku}}==
<syntaxhighlight lang="raku" perl6line>sub to-Greek (Str $string is copy) {
my %pre = :Ph<F>, :ck<k>, :ee<h>, :J<I>, :rh<r>,:oo<w>, :ph<f>, 's ' =:ch<χ> 'ς ';,
:th<θ>, :ps<ψ>, :Ch<Χ>, :Th<Θ>, :Ps<Ψ>, :kh<χ>, 's ' => 'ς ';
my %post =
:ch<χ>,my %post = :tha<θα>, :psb<ψβ>, :Chd<Χδ>, :The<Θε>, :Psf<Ψφ>, :khg<χγ>, :ah<αη>, :bi<βι>, :dj<δι>,
:e<ε>, :f<φ>, :gk<γκ>, :hl<ηλ>, :im<ιμ>, :jn<ιν>, :ko<κο>, :lp<λπ>, :mq<μκ>, :nr<νρ>, :os<οσ>,
:p<π>, :q<κ>, :r<ρ>, :s<σ>, :t<τ>, :u<υ>, :v<β>, :w<ω>, :x<ξ>, :y<υ>, :z<ζ>, :A<Α>, :B<Β>,
:A<Α>, :B<Β>, :D<Δ>, :E<Ε>, :F<Φ>, :G<Γ>, :H<Η>, :I<Ι>, :L<Λ>, :M<Μ>, :N<Ν>,
:O<Ο>, :P<Π>, :Q<Κ>, :R<Ρ>, :S<Σ>, :T<Τ>, :U<Υ>, :W<Ω>, :X<Ξ>, :Z<Ζ>;
:Z<Ζ>;
 
$string.=subst(:g, .key, .value ) for flat %pre, %post;
Line 189 ⟶ 729:
'<' ~ .uniname.subst( /.+<?after LETTER\s>/).lc ~ '>'
}).join
given 'sphinx of black quartz, judge my vow.';</langsyntaxhighlight>
{{out}}
<pre>English:
Line 206 ⟶ 746:
"Greek":
 
ΤηεΘε κυικ βροων φοξ ιυμπεδ οβερ τηεθε λαζυ δογ.
 
Ι ωας λωκινγ ατ σομε ροδοδενδρονς ιν μυ βακ γαρδεν,
δρεσσεδ ιν μυ κηακιχακι σηορτσ, ωηεν τηεθε τελεφονε ρανγ.
 
Ας Ι ανσωερεδ ιτ, Ι χηρφυλλυ γλιμπσεδγλιμψεδ τηατθατ τηεθε Ιυλυ συν
cαυσεδ α φραγμεντ οφ βλακ πινε ωαξ το ωζε ον τηεθε βελβετ κυιλτ
λαυινγ ιν μυ πατιο.
 
Line 221 ⟶ 761:
sphinx of black quartz, judge my vow.
<sigma><phi><iota><nu><xi> <omicron><phi> <beta><lamda><alpha><kappa> <kappa><upsilon><alpha><rho><tau><zeta>, <iota><upsilon><delta><gamma><epsilon> <mu><upsilon> <beta><omicron><omega>.</pre>
=={{header|Ruby}}==
<syntaxhighlight lang="ruby" line>replacements =
{"ch" => "χ", "th" => "θ", "ps" => "ψ", "ph" => "f", "Ch" => "Χ",
"Th" => "Θ", "Ps" => "Ψ", "Ph" => "F", "ee" => "h", "ck" => "κ", "rh" => "r", "kh" => "χ",
"Kh" => "Χ", "oo" => "w", "a" => "α", "b" => "β", "c" => "κ", "d" => "δ", "e" => "ε",
"f" => "φ", "g" => "γ", "h" => "η", "i" => "ι", "j" => "ι", "k" => "κ", "l" => "λ",
"m" => "μ", "n" => "ν", "o" => "ο", "p" => "π", "q" => "κ", "r" => "ρ", "s" => "σ",
"t" => "τ", "u" => "υ", "v" => "β", "w" => "ω", "x" => "ξ", "y" => "υ", "z" => "ζ",
"D" => "Δ", "F" => "Φ", "G" => "Γ", "J" => "I", "L" => "Λ", "P" => "Π", "Q" => "Κ",
"R" => "Ρ", "S" => "Σ", "Y" => "U", "W" => "Ω", "X" => "Ξ"}
pattern = Regexp.union(replacements.keys)
 
english =
"I was looking at some rhododendrons in my back garden,
dressed in my khaki shorts, when the telephone rang.
 
As I answered it, I cheerfully glimpsed that the July sun
caused a fragment of black pine wax to ooze on the velvet quilt
laying in my patio."
 
puts english.gsub(pattern, replacements).gsub(/σ(\b)/, "ς")
</syntaxhighlight>
{{out}}
<pre>I ωας λwκινγ ατ σομε rοδοδενδρονς ιν μυ βακ γαρδεν,
δρεσσεδ ιν μυ χακι σηορτς, ωηεν θε τελεfονε ρανγ.
 
Aς I ανσωερεδ ιτ, I χhρφυλλυ γλιμψεδ θατ θε Iυλυ συν
καυσεδ α φραγμεντ οφ βλακ πινε ωαξ το wζε ον θε βελβετ κυιλτ
λαυινγ ιν μυ πατιο.
</pre>
 
=={{header|Wren}}==
{{libheader|Wren-str}}
<langsyntaxhighlight ecmascriptlang="wren">import "./str" for Char, Greek
 
var English2Greek = Fn.new { |text|
Line 320 ⟶ 890:
}
System.print("The last example using the names of the Greek letters instead:")
var letters = Greek.names
var alphabet = "αβγδεζηθικλμνξοπρςστυφχψω".codePoints.toList
var e2gl = {}
for (i in 0...alphabet.count) e2gl[String.fromCodePoint(alphabet[i])] = letters[i]
var greek = English2Greek.call(texts[2])
var s = ""
Line 331 ⟶ 897:
c = g
} else {
c = "<" + e2gl[Greek.name(g]) + ">"
}
s = s + c
}
System.print(s)</langsyntaxhighlight>
 
{{out}}
3

edits