1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106 | --
-- Copyright (C) 2020, AdaCore
--
-- SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
--
-- Data package for testing.
with Ada.Strings.UTF_Encoding;
with VSS.Strings.Conversions;
package body Hello_World_Data is
use Ada.Strings.UTF_Encoding;
Hello_Arabic : aliased constant UTF_8_String := "ﻡﺮﺤﺑﺍ ﺎﻠﻋﺎﻠﻣ";
Hello_Chinese : aliased constant UTF_8_String := "你好世界";
Hello_English : aliased constant UTF_8_String := "Hello, world!";
Hello_French : aliased constant UTF_8_String := "Bonjour tout le monde";
Hello_German : aliased constant UTF_8_String := "Hallo Welt";
Hello_Greek : aliased constant UTF_8_String := "Γεια σας κόσμο";
Hello_Hebrew : aliased constant UTF_8_String := "שלום העולם";
Hello_Japanse : aliased constant UTF_8_String := "こんにちは世界";
Hello_Korean : aliased constant UTF_8_String := "안녕하세요";
Hello_Russian : aliased constant UTF_8_String := "Здравствуй, мир!";
Hello_Thai : aliased constant UTF_8_String := "สวัสดีชาวโลก";
Hello_Turkish : aliased constant UTF_8_String := "merhaba dünya";
Language_Arabic : aliased constant UTF_8_String := "Arabic";
Language_Chinese : aliased constant UTF_8_String := "Chinese";
Language_English : aliased constant UTF_8_String := "English";
Language_French : aliased constant UTF_8_String := "French";
Language_German : aliased constant UTF_8_String := "German";
Language_Greek : aliased constant UTF_8_String := "Greek";
Language_Hebrew : aliased constant UTF_8_String := "Hebrew";
Language_Japanse : aliased constant UTF_8_String := "Japanse";
Language_Korean : aliased constant UTF_8_String := "Korean";
Language_Russian : aliased constant UTF_8_String := "Russian";
Language_Thai : aliased constant UTF_8_String := "Thai";
Language_Turkish : aliased constant UTF_8_String := "Turkish";
Languages : constant array (Language) of access constant UTF_8_String :=
(Language_Arabic'Access,
Language_Chinese'Access,
Language_English'Access,
Language_French'Access,
Language_German'Access,
Language_Greek'Access,
Language_Hebrew'Access,
Language_Japanse'Access,
Language_Korean'Access,
Language_Russian'Access,
Language_Thai'Access,
Language_Turkish'Access);
Hellos : constant array (Language) of access constant UTF_8_String :=
(Hello_Arabic'Access,
Hello_Chinese'Access,
Hello_English'Access,
Hello_French'Access,
Hello_German'Access,
Hello_Greek'Access,
Hello_Hebrew'Access,
Hello_Japanse'Access,
Hello_Korean'Access,
Hello_Russian'Access,
Hello_Thai'Access,
Hello_Turkish'Access);
-----------
-- Hello --
-----------
function Hello (Self : Language) return String is
begin
return Hellos (Self).all;
end Hello;
-----------
-- Hello --
-----------
function Hello (Self : Language) return VSS.Strings.Virtual_String is
begin
return VSS.Strings.Conversions.To_Virtual_String (Hellos (Self).all);
end Hello;
----------
-- Name --
----------
function Name (Self : Language) return String is
begin
return Languages (Self).all;
end Name;
----------
-- Name --
----------
function Name (Self : Language) return VSS.Strings.Virtual_String is
begin
return VSS.Strings.Conversions.To_Virtual_String (Languages (Self).all);
end Name;
end Hello_World_Data;
|