xref: /aosp_15_r20/external/cldr/docs/dev/generate-emoji-paths.md (revision 912701f9769bb47905792267661f0baf2b85bed5)
1*912701f9SAndroid Build Coastguard WorkerUpdate emoji translations & ordering
2*912701f9SAndroid Build Coastguard Worker====================================
3*912701f9SAndroid Build Coastguard Worker
4*912701f9SAndroid Build Coastguard WorkerSBRS (at the start of the release):
5*912701f9SAndroid Build Coastguard Worker-----
6*912701f9SAndroid Build Coastguard Worker
7*912701f9SAndroid Build Coastguard WorkerWhere the current version is VV:
8*912701f9SAndroid Build Coastguard Worker
9*912701f9SAndroid Build Coastguard Worker1.  Run unicodetools GenerateEmoji with specific version number, like 14.0
10*912701f9SAndroid Build Coastguard Worker
11*912701f9SAndroid Build Coastguard Worker1.  If you get an error like
12*912701f9SAndroid Build Coastguard Worker
13*912701f9SAndroid Build Coastguard Worker    * Exception in thread "main" java.lang.IllegalArgumentException: no name for ��‍�� 1FAF1 200D 1FAF2
14*912701f9SAndroid Build Coastguard Worker    * at org.unicode.tools.emoji.EmojiData.\_getName(EmojiData.java:1230)
15*912701f9SAndroid Build Coastguard Worker    * at org.unicode.tools.emoji.EmojiData.getName(EmojiData.java:1194)
16*912701f9SAndroid Build Coastguard Worker    * at org.unicode.tools.emoji.EmojiDataSourceCombined.getName(EmojiDataSourceCombined.java:156)
17*912701f9SAndroid Build Coastguard Worker    * at org.unicode.tools.emoji.GenerateEmoji.showCandidateStyle(GenerateEmoji.java:3600)
18*912701f9SAndroid Build Coastguard Worker    * at org.unicode.tools.emoji.GenerateEmoji.main(GenerateEmoji.java:641)
19*912701f9SAndroid Build Coastguard Worker
20*912701f9SAndroid Build Coastguard Worker2.  Then change the name composition algorithm if necessary (for new emoji zwj sequences)
21*912701f9SAndroid Build Coastguard Worker
22*912701f9SAndroid Build Coastguard Worker    1.  It may have also been modified during the emoji development. Typically the code that needs changing will be in Annotations.synthesize, to capture yet another special skintone instance
23*912701f9SAndroid Build Coastguard Worker    2.  Ensure that the documentation of composition of names (for new components like hair styles) in LDML is updated to match what is in org.unicode.cldr.util.Annotations.
24*912701f9SAndroid Build Coastguard Worker    3.  Make sure that org.unicode.tools.emoji.unittest.TestAll runs successfully, with -Demoji-beta.
25*912701f9SAndroid Build Coastguard Worker
26*912701f9SAndroid Build Coastguard Worker2.  Copy
27*912701f9SAndroid Build Coastguard Worker
28*912701f9SAndroid Build Coastguard Worker    * /emoji/docs/Public/emoji/14.0/emoji-test.txt<br>
29*912701f9SAndroid Build Coastguard Worker	to
30*912701f9SAndroid Build Coastguard Worker    * /cldr-code/src/main/resources/org/unicode/cldr/util/data/emoji/emoji-test.txt
31*912701f9SAndroid Build Coastguard Worker
32*912701f9SAndroid Build Coastguard Worker3.  Run unicode tools: org.unicode.tools.emoji.GenerateCldrData
33*912701f9SAndroid Build Coastguard Worker
34*912701f9SAndroid Build Coastguard Worker    1.  Copy each list of data from the console into (respectively) as per instructions
35*912701f9SAndroid Build Coastguard Worker
36*912701f9SAndroid Build Coastguard Worker        1.  annotations/root.xml
37*912701f9SAndroid Build Coastguard Worker        2.  annotations/en.xml
38*912701f9SAndroid Build Coastguard Worker
39*912701f9SAndroid Build Coastguard Worker    2.  Copy emoji-test.txt into org.unicode.cldr.util.data.emoji
40*912701f9SAndroid Build Coastguard Worker
41*912701f9SAndroid Build Coastguard Worker4.  Run org.unicode.tools.emoji.CopyImagesToCldr.java to add images to ... /cldr/tools/cldr-apps/src/main/webapp/images/emoji
42*912701f9SAndroid Build Coastguard Worker
43*912701f9SAndroid Build Coastguard Worker    * These are the ones that show up in the info panel of the survey tool.
44*912701f9SAndroid Build Coastguard Worker    * Update the collation/root.xml using unicode/draft/emoji/charts-VV/emoji-ordering-rules.txt
45*912701f9SAndroid Build Coastguard Worker
46*912701f9SAndroid Build Coastguard Worker5.  Run tests
47*912701f9SAndroid Build Coastguard Worker
48*912701f9SAndroid Build Coastguard Worker    1.  You may get an error in testAnnotationPaths.
49*912701f9SAndroid Build Coastguard Worker
50*912701f9SAndroid Build Coastguard Worker        1.  May need to change org.unicode.cldr.util.Emoji.SPECIALS to have TestAnnotations pass. These are zwj sequences whose names cannot be composed.
51*912701f9SAndroid Build Coastguard Worker        2.  eg "\[{��‍��}{��‍��}{��‍☠}\]"
52*912701f9SAndroid Build Coastguard Worker
53*912701f9SAndroid Build Coastguard Worker    2.  You may also get an error in TestNames. Check the names to see what is happening, and whether to change the test or the data.
54*912701f9SAndroid Build Coastguard Worker
55*912701f9SAndroid Build Coastguard WorkerTODO: test that derived names are complete
56*912701f9SAndroid Build Coastguard Worker
57*912701f9SAndroid Build Coastguard WorkerBRS (if the UCD files are adjusted after the start of the release):
58*912701f9SAndroid Build Coastguard Worker----
59*912701f9SAndroid Build Coastguard Worker
60*912701f9SAndroid Build Coastguard WorkerAs above, except that you only need to
61*912701f9SAndroid Build Coastguard Worker
62*912701f9SAndroid Build Coastguard Worker1.  Run unicodetools GenerateEmoji with the beta options
63*912701f9SAndroid Build Coastguard Worker2.  Copy emoji-test.txt into org.unicode.cldr.util.data.emoji
64*912701f9SAndroid Build Coastguard Worker3.  update collation/root.xml using unicode/draft/emoji/charts-XX/emoji-ordering-rules.txt