ciiic-translation-rules 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,201 @@
1
+ # ciiic-translation-rules
2
+
3
+ Shared translation rules and terminology for CIIIC content (English/Dutch).
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install ciiic-translation-rules
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ### Get LLM Translation Prompts
14
+
15
+ ```typescript
16
+ import { getDutchGuidelines, getEnglishGuidelines, getGuidelines } from 'ciiic-translation-rules';
17
+
18
+ // Get guidelines for translating TO Dutch
19
+ const dutchPrompt = getDutchGuidelines();
20
+
21
+ // Get guidelines for translating TO English
22
+ const englishPrompt = getEnglishGuidelines();
23
+
24
+ // Or use the helper with target language
25
+ const guidelines = getGuidelines('nl'); // or 'en'
26
+ ```
27
+
28
+ ### Manual Prompt (Markdown)
29
+
30
+ For use cases where you can't programmatically include the rules (e.g., pasting into ChatGPT):
31
+
32
+ ```typescript
33
+ import { generateMarkdownPrompt } from 'ciiic-translation-rules';
34
+
35
+ // Get a complete markdown prompt with all rules
36
+ const markdownPrompt = generateMarkdownPrompt();
37
+ ```
38
+
39
+ Or use the pre-generated file included in the package: `TRANSLATION_PROMPT.md`
40
+
41
+ To regenerate after editing rules:
42
+
43
+ ```bash
44
+ npm run generate-prompt
45
+ ```
46
+
47
+ ### Access Raw Rules
48
+
49
+ ```typescript
50
+ import { TRANSLATION_RULES } from 'ciiic-translation-rules';
51
+
52
+ // Access organisation mappings
53
+ console.log(TRANSLATION_RULES.organisations);
54
+
55
+ // Access funding call translations
56
+ console.log(TRANSLATION_RULES.fundingCalls);
57
+
58
+ // Access CTA/button translations
59
+ console.log(TRANSLATION_RULES.ctaTranslations);
60
+
61
+ // Access CIIIC-specific terms
62
+ console.log(TRANSLATION_RULES.ciiicSpecifics);
63
+
64
+ // Access terminology mappings
65
+ console.log(TRANSLATION_RULES.terminology);
66
+
67
+ // Access newsletter phrases
68
+ console.log(TRANSLATION_RULES.newsletterPhrases);
69
+
70
+ // Access terms that should never be translated
71
+ console.log(TRANSLATION_RULES.neverTranslate);
72
+ ```
73
+
74
+ ### Utility Functions
75
+
76
+ ```typescript
77
+ import {
78
+ translateFundingCall,
79
+ translateOrganisation,
80
+ shouldNeverTranslate,
81
+ } from 'ciiic-translation-rules';
82
+
83
+ // Translate a funding call name
84
+ const englishName = translateFundingCall(
85
+ 'CIIIC Start: verkennend onderzoek naar immersive experiences',
86
+ 'en'
87
+ );
88
+ // 'CIIIC Start: exploratory research into immersive experiences'
89
+
90
+ // Translate an organisation name
91
+ const dutchName = translateOrganisation('Creative Industries Fund NL', 'nl');
92
+ // 'Stimuleringsfonds Creatieve Industrie'
93
+
94
+ // Check if a term should never be translated
95
+ shouldNeverTranslate('ADRIE'); // true
96
+ shouldNeverTranslate('hello'); // false
97
+ ```
98
+
99
+ ## What's Included
100
+
101
+ ### Organisation Mappings
102
+ - Stimuleringsfonds Creatieve Industrie ↔ Creative Industries Fund NL
103
+ - Ministerie van OCW ↔ Ministry of Education, Culture and Science
104
+ - Rijksoverheid ↔ Dutch Government
105
+ - Mondriaan Fonds ↔ Mondriaan Fund
106
+ - Filmfonds ↔ Netherlands Film Fund
107
+
108
+ ### Funding Call Translations
109
+ - CIIIC Start: verkennend onderzoek... ↔ CIIIC Start: exploratory research...
110
+ - CIIIC Kern: Vraaggestuurd... ↔ CIIIC Kern: Demand-driven...
111
+ - ADRIE (same in both languages)
112
+ - ITLI (same in both languages)
113
+
114
+ ### Button/CTA Text
115
+ - Lees meer / Lees verder → Read more
116
+ - Meer informatie → More information
117
+ - Schrijf je in / Meld je aan / Aanmelden → Register / Sign up
118
+ - Bekijk de agenda → View the agenda
119
+ - Naar de website → Go to website
120
+ - Deel dit bericht → Share this
121
+
122
+ ### CIIIC-Specific Terms
123
+ - Programmadirecteur → Programme Director
124
+ - Projectleider → Project Lead
125
+ - Communicatie & Marketing → Communications & Marketing
126
+ - Adviseur → Advisor
127
+ - Coördinator → Coordinator
128
+ - Communityplatform → Community Platform
129
+
130
+ ### Grant/Funding Terminology
131
+ - subsidie / financiering ↔ grant / funding
132
+ - aanvraag ↔ application
133
+ - bijdrage ↔ contribution / grant
134
+ - toekenning ↔ award / allocation
135
+ - begroting ↔ budget
136
+ - penvoerder ↔ lead applicant / consortium lead
137
+
138
+ ### Sector Terminology
139
+ - creatieve industrie ↔ creative industries
140
+ - games / gamesector ↔ games / games sector
141
+ - extended reality / XR ↔ extended reality / XR
142
+ - ontwikkelaar ↔ developer
143
+ - ontwerper ↔ designer
144
+ - kunstenaar ↔ artist
145
+ - maker ↔ maker / creator
146
+
147
+ ### Newsletter Phrases
148
+ - Bekijk deze e-mail in je browser → View this email in your browser
149
+ - Uitschrijven → Unsubscribe
150
+ - Voorkeuren aanpassen → Update your preferences
151
+ - Beste lezer → Dear reader
152
+ - Met vriendelijke groet → Kind regards
153
+ - Hartelijke groet → Warm regards
154
+
155
+ ### Never Translate
156
+ CIIIC, ADRIE, ITLI, IX, IFFR, Eurosonic Noorderslag, ESNS, @CIIIC_NL, #immersiveexperiences, Circle, Notion, Dutch Game Garden, Indigo, Control Conference
157
+
158
+ ### Language-Specific Rules
159
+
160
+ **Dutch:**
161
+ - Sentence case for headlines (not Title Case)
162
+ - Informal "je/jij" (not formal "u")
163
+
164
+ **English:**
165
+ - British English spellings (colour, organise, centre)
166
+ - British vocabulary (programme, behaviour)
167
+
168
+ ## Updating Rules
169
+
170
+ Edit `src/index.ts` and update the `TRANSLATION_RULES` object. Then regenerate the prompt and publish:
171
+
172
+ ```bash
173
+ npm run generate-prompt
174
+ npm version patch # or minor/major
175
+ npm publish
176
+ ```
177
+
178
+ Applications using this package can update with:
179
+
180
+ ```bash
181
+ npm update ciiic-translation-rules
182
+ ```
183
+
184
+ ## TypeScript
185
+
186
+ Full TypeScript support with exported types:
187
+
188
+ ```typescript
189
+ import type {
190
+ TranslationRules,
191
+ OrganisationMapping,
192
+ FundingCallMapping,
193
+ TerminologyMapping,
194
+ OfficialTerm,
195
+ SimpleTranslation,
196
+ } from 'ciiic-translation-rules';
197
+ ```
198
+
199
+ ## License
200
+
201
+ MIT
@@ -0,0 +1,121 @@
1
+ # CIIIC Translation Rules
2
+
3
+ Use these rules when translating content between Dutch and English for CIIIC.
4
+
5
+ ## Organisation Names
6
+
7
+ | Dutch | English | Notes |
8
+ |-------|---------|-------|
9
+ | Stimuleringsfonds Creatieve Industrie | Creative Industries Fund NL | Never shorten to just "Stimuleringsfonds" - always use the full name |
10
+ | Ministerie van OCW | Ministry of Education, Culture and Science | |
11
+ | Rijksoverheid | Dutch Government | |
12
+ | Mondriaan Fonds | Mondriaan Fund | |
13
+ | Filmfonds | Netherlands Film Fund | |
14
+
15
+ ## Funding Call Translations
16
+
17
+ Use these exact translations for funding call names:
18
+
19
+ | Dutch | English | Notes |
20
+ |-------|---------|-------|
21
+ | CIIIC Start: verkennend onderzoek naar immersive experiences | CIIIC Start: exploratory research into immersive experiences | |
22
+ | CIIIC Kern: Vraaggestuurd praktijkgericht onderzoek naar immersive experiences | CIIIC Kern: Demand-driven practice-oriented research into immersive experiences | |
23
+ | Artistic & Design Research for Immersive Experiences (ADRIE) | Artistic & Design Research for Immersive Experiences (ADRIE) | Same in both languages |
24
+ | Immersive Tech for Learning & Inclusion (ITLI) | Immersive Tech for Learning & Inclusion (ITLI) | Same in both languages |
25
+
26
+ ## Button/CTA Text
27
+
28
+ | Dutch | English |
29
+ |-------|---------|
30
+ | Lees meer | Read more |
31
+ | Lees verder | Read more |
32
+ | Meer informatie | More information |
33
+ | Schrijf je in | Register |
34
+ | Meld je aan | Sign up |
35
+ | Aanmelden | Register |
36
+ | Bekijk de agenda | View the agenda |
37
+ | Naar de website | Go to website |
38
+ | Download | Download |
39
+ | Deel dit bericht | Share this |
40
+
41
+ ## CIIIC-Specific Terms
42
+
43
+ | Dutch | English |
44
+ |-------|---------|
45
+ | Programmadirecteur | Programme Director |
46
+ | Projectleider | Project Lead |
47
+ | Communicatie & Marketing | Communications & Marketing |
48
+ | Adviseur | Advisor |
49
+ | Coördinator | Coordinator |
50
+ | Communityplatform | Community Platform |
51
+
52
+ ## Terminology
53
+
54
+ These terms can be used interchangeably or have specific translations:
55
+
56
+ | Dutch | English | Notes |
57
+ |-------|---------|-------|
58
+ | immersive experiences, immersieve ervaringen | immersive experiences | In Dutch, both "immersive experiences" (English) and "immersieve ervaringen" are acceptable. The abbreviation "IX" is common in both languages. |
59
+ | call, regeling | call, funding call, grant scheme | The English word "call" is commonly used in Dutch. "Regeling" is the formal Dutch synonym. |
60
+ | subsidie, financiering | grant, funding | |
61
+ | aanvraag, aanvragen | application, apply | |
62
+ | bijdrage | contribution, grant | |
63
+ | toekenning | award, allocation | |
64
+ | begroting | budget | |
65
+ | deadline, sluitingsdatum | deadline, closing date | |
66
+ | honorarium | fee, honorarium | |
67
+ | penvoerder | lead applicant, consortium lead | |
68
+ | consortium | consortium | |
69
+ | creatieve industrie | creative industries | |
70
+ | games, gamesector | games, games sector | |
71
+ | extended reality, XR | extended reality, XR | |
72
+ | virtual reality, VR | virtual reality, VR | |
73
+ | augmented reality, AR | augmented reality, AR | |
74
+ | ontwikkelaar | developer | |
75
+ | ontwerper | designer | |
76
+ | kunstenaar | artist | |
77
+ | maker | maker, creator | |
78
+
79
+ ## Newsletter-Specific Phrases
80
+
81
+ | Dutch | English |
82
+ |-------|---------|
83
+ | Bekijk deze e-mail in je browser | View this email in your browser |
84
+ | Uitschrijven | Unsubscribe |
85
+ | Voorkeuren aanpassen | Update your preferences |
86
+ | Beste lezer | Dear reader |
87
+ | Met vriendelijke groet | Kind regards |
88
+ | Hartelijke groet | Warm regards |
89
+ | In deze nieuwsbrief | In this newsletter |
90
+
91
+ ## Official Terms
92
+
93
+ Keep these in their original language (use quotes if needed):
94
+
95
+ - **Rijksbrede Innovatie Agenda** (dutch) - No official English translation - keep in Dutch with quotes
96
+
97
+ ## Never Translate
98
+
99
+ These terms should NEVER be translated - keep them exactly as-is:
100
+
101
+ ```
102
+ CIIIC, ADRIE, ITLI, IX, IFFR, Eurosonic Noorderslag, ESNS, @CIIIC_NL, #immersiveexperiences, Circle, Notion, Dutch Game Garden, Indigo, Control Conference
103
+ ```
104
+
105
+ ## General Rules
106
+
107
+ ### Personal Names
108
+ - People's names must NEVER be translated
109
+ - Example: "Jan de Vries" stays "Jan de Vries", NOT "John of Vries"
110
+
111
+ ### Dutch-Specific
112
+ - Headlines and titles: Use sentence case only (first letter capitalised, rest lowercase)
113
+ - Use informal Dutch: Always use "je/jij/jouw" instead of "u/uw"
114
+ - Maintain a friendly but professional tone
115
+
116
+ ### English-Specific
117
+ - Use British English spellings (colour, organise, centre)
118
+ - British vocabulary: "programme" (not "program"), "behaviour", "favour"
119
+
120
+ ### General Principle
121
+ It is acceptable and often preferable to leave some terms in their original language. Proper nouns, programme names, personal names, and official terminology should generally remain unchanged or use the official translation if one exists.
@@ -0,0 +1,84 @@
1
+ /**
2
+ * CIIIC Translation Rules
3
+ *
4
+ * Shared translation rules and terminology for English <-> Dutch translation.
5
+ * Used across CIIIC applications for consistent translations.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ interface OrganisationMapping {
10
+ dutch: string;
11
+ english: string;
12
+ notes?: string;
13
+ }
14
+ interface SimpleTranslation {
15
+ dutch: string;
16
+ english: string;
17
+ }
18
+ interface FundingCallMapping {
19
+ dutch: string;
20
+ english: string;
21
+ notes?: string;
22
+ }
23
+ interface TerminologyMapping {
24
+ dutch: string[];
25
+ english: string[];
26
+ notes?: string;
27
+ }
28
+ interface OfficialTerm {
29
+ term: string;
30
+ language: 'dutch' | 'english';
31
+ notes?: string;
32
+ }
33
+ interface TranslationRules {
34
+ organisations: OrganisationMapping[];
35
+ fundingCalls: FundingCallMapping[];
36
+ terminology: TerminologyMapping[];
37
+ neverTranslate: string[];
38
+ officialTerms: OfficialTerm[];
39
+ ctaTranslations: SimpleTranslation[];
40
+ ciiicSpecifics: SimpleTranslation[];
41
+ newsletterPhrases: SimpleTranslation[];
42
+ }
43
+ /**
44
+ * All translation rules and terminology mappings.
45
+ * Edit this object to update translation guidelines across all applications.
46
+ */
47
+ declare const TRANSLATION_RULES: TranslationRules;
48
+ /**
49
+ * Generate the terminology rules section for LLM prompts
50
+ */
51
+ declare function generateTerminologyPrompt(): string;
52
+ /**
53
+ * Get Dutch-specific translation guidelines for LLM prompts
54
+ */
55
+ declare function getDutchGuidelines(): string;
56
+ /**
57
+ * Get English-specific translation guidelines for LLM prompts
58
+ */
59
+ declare function getEnglishGuidelines(): string;
60
+ /**
61
+ * Get guidelines for a specific target language
62
+ */
63
+ declare function getGuidelines(targetLanguage: 'en' | 'nl'): string;
64
+ /**
65
+ * Look up the translation for a funding call name
66
+ * Returns undefined if no mapping exists
67
+ */
68
+ declare function translateFundingCall(name: string, targetLanguage: 'en' | 'nl'): string | undefined;
69
+ /**
70
+ * Look up the translation for an organisation name
71
+ * Returns undefined if no mapping exists
72
+ */
73
+ declare function translateOrganisation(name: string, targetLanguage: 'en' | 'nl'): string | undefined;
74
+ /**
75
+ * Check if a term should never be translated
76
+ */
77
+ declare function shouldNeverTranslate(term: string): boolean;
78
+ /**
79
+ * Generate a complete markdown prompt with all translation rules.
80
+ * Useful for manual use cases where you can't programmatically include the rules.
81
+ */
82
+ declare function generateMarkdownPrompt(): string;
83
+
84
+ export { type FundingCallMapping, type OfficialTerm, type OrganisationMapping, type SimpleTranslation, TRANSLATION_RULES, type TerminologyMapping, type TranslationRules, generateMarkdownPrompt, generateTerminologyPrompt, getDutchGuidelines, getEnglishGuidelines, getGuidelines, shouldNeverTranslate, translateFundingCall, translateOrganisation };
@@ -0,0 +1,84 @@
1
+ /**
2
+ * CIIIC Translation Rules
3
+ *
4
+ * Shared translation rules and terminology for English <-> Dutch translation.
5
+ * Used across CIIIC applications for consistent translations.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ interface OrganisationMapping {
10
+ dutch: string;
11
+ english: string;
12
+ notes?: string;
13
+ }
14
+ interface SimpleTranslation {
15
+ dutch: string;
16
+ english: string;
17
+ }
18
+ interface FundingCallMapping {
19
+ dutch: string;
20
+ english: string;
21
+ notes?: string;
22
+ }
23
+ interface TerminologyMapping {
24
+ dutch: string[];
25
+ english: string[];
26
+ notes?: string;
27
+ }
28
+ interface OfficialTerm {
29
+ term: string;
30
+ language: 'dutch' | 'english';
31
+ notes?: string;
32
+ }
33
+ interface TranslationRules {
34
+ organisations: OrganisationMapping[];
35
+ fundingCalls: FundingCallMapping[];
36
+ terminology: TerminologyMapping[];
37
+ neverTranslate: string[];
38
+ officialTerms: OfficialTerm[];
39
+ ctaTranslations: SimpleTranslation[];
40
+ ciiicSpecifics: SimpleTranslation[];
41
+ newsletterPhrases: SimpleTranslation[];
42
+ }
43
+ /**
44
+ * All translation rules and terminology mappings.
45
+ * Edit this object to update translation guidelines across all applications.
46
+ */
47
+ declare const TRANSLATION_RULES: TranslationRules;
48
+ /**
49
+ * Generate the terminology rules section for LLM prompts
50
+ */
51
+ declare function generateTerminologyPrompt(): string;
52
+ /**
53
+ * Get Dutch-specific translation guidelines for LLM prompts
54
+ */
55
+ declare function getDutchGuidelines(): string;
56
+ /**
57
+ * Get English-specific translation guidelines for LLM prompts
58
+ */
59
+ declare function getEnglishGuidelines(): string;
60
+ /**
61
+ * Get guidelines for a specific target language
62
+ */
63
+ declare function getGuidelines(targetLanguage: 'en' | 'nl'): string;
64
+ /**
65
+ * Look up the translation for a funding call name
66
+ * Returns undefined if no mapping exists
67
+ */
68
+ declare function translateFundingCall(name: string, targetLanguage: 'en' | 'nl'): string | undefined;
69
+ /**
70
+ * Look up the translation for an organisation name
71
+ * Returns undefined if no mapping exists
72
+ */
73
+ declare function translateOrganisation(name: string, targetLanguage: 'en' | 'nl'): string | undefined;
74
+ /**
75
+ * Check if a term should never be translated
76
+ */
77
+ declare function shouldNeverTranslate(term: string): boolean;
78
+ /**
79
+ * Generate a complete markdown prompt with all translation rules.
80
+ * Useful for manual use cases where you can't programmatically include the rules.
81
+ */
82
+ declare function generateMarkdownPrompt(): string;
83
+
84
+ export { type FundingCallMapping, type OfficialTerm, type OrganisationMapping, type SimpleTranslation, TRANSLATION_RULES, type TerminologyMapping, type TranslationRules, generateMarkdownPrompt, generateTerminologyPrompt, getDutchGuidelines, getEnglishGuidelines, getGuidelines, shouldNeverTranslate, translateFundingCall, translateOrganisation };