change tile info format in info.txt

I'm moving toward allowing per-board-size counts with faces and values
staying the same. So it makes more sense to have face and values be
the first columns.
This commit is contained in:
Eric House 2022-04-04 08:12:29 +02:00
parent b150ef471b
commit 5a65d0a3db
34 changed files with 837 additions and 762 deletions

View file

@ -15,41 +15,45 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
CHARSET: utf-8
LANGCODE:ar_AR
LANGCODE:ar
LANGNAME:Arabic
XLOC_HEADER:0x8500
# This looks really weird in most text editors because the mix of
# right-to-left and left-to-right scripts confuses them
<BEGIN_TILES>
2 8 'ﺀ'
2 10 'ﺃ'
8 1 ''
4 2 'ﺏ'
4 2 'ﺕ'
3 2 'ﺙ'
4 1 'ﺝ'
3 1 'ﺡ'
3 1 'ﺥ'
3 2 'ﺩ'
3 3 'ﺫ'
3 2 'ﺭ'
3 3 'ﺯ'
3 2 'ﺱ'
3 3 'ﺵ'
3 4 'ﺹ'
3 4 'ﺽ'
2 4 'ﻁ'
2 5 'ﻅ'
3 4 'ﻉ'
2 8 'ﻍ'
3 3 'ﻑ'
3 3 'ﻕ'
3 4 'ﻙ'
4 1 'ﻝ'
3 1 'ﻡ'
3 1 'ﻥ'
3 1 ''
2 10 'ﺅ'
3 1 'ﻭ'
3 1 'ﻯ'
2 6 'ﺉ'
2 0 {"_"}
'ﺀ' 8 2
'ﺃ' 10 2
'' 1 8
'ﺏ' 2 4
'ﺕ' 2 4
'ﺙ' 2 3
'ﺝ' 1 4
'ﺡ' 1 3
'ﺥ' 1 3
'ﺩ' 2 3
'ﺫ' 3 3
'ﺭ' 2 3
'ﺯ' 3 3
'ﺱ' 2 3
'ﺵ' 3 3
'ﺹ' 4 3
'ﺽ' 4 3
'ﻁ' 4 2
'ﻅ' 5 2
'ﻉ' 4 3
'ﻍ' 8 2
'ﻑ' 3 3
'ﻕ' 3 3
'ﻙ' 4 3
'ﻝ' 1 4
'ﻡ' 1 3
'ﻥ' 1 3
'' 1 3
'ﺅ' 10 2
'ﻭ' 1 3
'ﻯ' 1 3
'ﺉ' 6 2
{"_"} 0 2
<END_TILES>

View file

@ -16,7 +16,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
LANGCODE:ca_ES
LANGCODE:ca
LANGNAME:Catalan
CHARSET: utf-8
NEEDSSORT:true
@ -62,33 +63,33 @@ XLOC_HEADER:0x8C00
<BEGIN_TILES>
2 0 {"_"}
12 1 'A|a'
2 3 'B|b'
3 2 'C|c'
1 10 'Ç|ç'
3 2 'D|d'
13 1 'E|e'
1 4 'F|f'
2 3 'G|g'
1 8 'H|h'
8 1 'I|i'
1 8 'J|j'
4 1 'L|l'
1 10 {"L·L|L-L|ĿL|l·l|l-l|ŀl"}
3 2 'M|m'
6 1 'N|n'
1 10 {"NY|ny|Ny|nY"}
5 1 'O|o'
2 3 'P|p'
1 8 {"QU|qu|Qu|qU"}
8 1 'R|r'
8 1 'S|s'
5 1 'T|t'
4 1 'U|u'
1 4 'V|v'
1 10 'X|x'
1 8 'Z|z'
{"_"} 0 2
'A|a' 1 12
'B|b' 3 2
'C|c' 2 3
'Ç|ç' 10 1
'D|d' 2 3
'E|e' 1 13
'F|f' 4 1
'G|g' 3 2
'H|h' 8 1
'I|i' 1 8
'J|j' 8 1
'L|l' 1 4
{"L·L|L-L|ĿL|l·l|l-l|ŀl"} 10 1
'M|m' 2 3
'N|n' 1 6
{"NY|ny|Ny|nY"} 10 1
'O|o' 1 5
'P|p' 3 2
{"QU|qu|Qu|qU"} 8 1
'R|r' 1 8
'S|s' 1 8
'T|t' 1 5
'U|u' 1 4
'V|v' 4 1
'X|x' 10 1
'Z|z' 8 1
<END_TILES>
#
# NOTES:

View file

@ -1,41 +0,0 @@
# -*-mode: Makefile; coding: utf-8; -*-
# Copyright 2002-2008 by Eric House (xwords@eehouse.org). All rights reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
XWLANG=Czech
LANGCODE=cs_CZ
ENC = UTF-8
TARGET_TYPE ?= WINCE
include ../Makefile.langcommon
SOURCEDICT ?= $(XWDICTPATH)/Czech/Czech.2-1-6.dict.gz
$(XWLANG)Main.dict.gz: $(SOURCEDICT) Makefile
zcat $< | tr -d '\r' | \
sed 's,.,\U\0,g' | \
grep '^[AÁBCČDĎEÉĚFGHIÍJKLMNŇOÓPRŘSŠTŤUÚŮVXYÝZŽ]*$$' | \
gzip -c > $@
# Everything but creating of the Main.dict file is inherited from the
# "parent" Makefile.langcommon in the parent directory.
clean: clean_common
rm -f $(XWLANG)Main.dict.gz *.bin $(XWLANG)*.pdb $(XWLANG)*.seb
help:
@echo 'make [SOURCEDICT=$(XWDICTPATH)/$(XWLANG)/czech2_5.dict.gz]'

1
xwords4/dawg/Czech/Makefile Symbolic link
View file

@ -0,0 +1 @@
Makefile.blex

View file

@ -0,0 +1,41 @@
# -*-mode: Makefile; coding: utf-8; -*-
# Copyright 2002-2008 by Eric House (xwords@eehouse.org). All rights reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
XWLANG=Czech
LANGCODE=cs_CZ
ENC = UTF-8
TARGET_TYPE ?= WINCE
include ../Makefile.langcommon
SOURCEDICT ?= $(XWDICTPATH)/Czech/Czech.2-1-6.dict.gz
$(XWLANG)Main.dict.gz: $(SOURCEDICT) Makefile
zcat $< | tr -d '\r' | \
sed 's,.,\U\0,g' | \
grep '^[AÁBCČDĎEÉĚFGHIÍJKLMNŇOÓPRŘSŠTŤUÚŮVXYÝZŽ]*$$' | \
gzip -c > $@
# Everything but creating of the Main.dict file is inherited from the
# "parent" Makefile.langcommon in the parent directory.
clean: clean_common
rm -f $(XWLANG)Main.dict.gz *.bin $(XWLANG)*.pdb $(XWLANG)*.seb
help:
@echo 'make [SOURCEDICT=$(XWDICTPATH)/$(XWLANG)/czech2_5.dict.gz]'

View file

@ -25,12 +25,12 @@ TARGET_TYPE ?= WINCE
include ../Makefile.langcommon
SOURCEDICT ?= $(XWDICTPATH)/Czech/blex.dict.gz
SOURCEDICT ?= $(XWDICTPATH)/Czech/blex.dict
all: $(XWLANG)2to5.xwd
$(XWLANG)Main.dict.gz: $(SOURCEDICT) Makefile
zcat $< | tr -d '\r' | \
cat $< | tr -d '\r' | \
sed 's,.,\U\0,g' | \
grep '^[AÁBCČDĎEÉĚFGHIÍJKLMNŇOÓPRŘSŠTŤUÚŮVXYÝZŽ]*$$' | \
gzip -c > $@

View file

@ -15,7 +15,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
LANGCODE:cs_CZ
LANGCODE:cs
LANGNAME:Czech
CHARSET:utf-8
# deal with DOS files
@ -39,46 +40,46 @@ LANGINFO: Unicode-aware systems. </p>
# Czech-ISO8859-2==0x11. Low byte is padding.
XLOC_HEADER:0x9100
#COUNT VAL FACE
#FACE VAL COUNT[15]
<BEGIN_TILES>
2 0 {"_"}
5 1 'A'
2 2 'Á'
2 3 'B'
3 2 'C'
1 4 'Č'
3 1 'D'
1 8 'Ď'
5 1 'E'
2 3 'É'
2 3 'Ě'
1 5 'F'
1 5 'G'
3 2 'H'
4 1 'I'
3 2 'Í'
2 2 'J'
3 1 'K'
3 1 'L'
3 2 'M'
5 1 'N'
1 6 'Ň'
6 1 'O'
1 7 'Ó'
3 1 'P'
3 1 'R'
2 4 'Ř'
4 1 'S'
2 4 'Š'
4 1 'T'
1 7 'Ť'
3 2 'U'
1 5 'Ú'
1 4 'Ů'
4 1 'V'
1 10 'X'
2 2 'Y'
2 4 'Ý'
2 2 'Z'
1 4 'Ž'
{"_"} 0 2
'A' 1 5
'Á' 2 2
'B' 3 2
'C' 2 3
'Č' 4 1
'D' 1 3
'Ď' 8 1
'E' 1 5
'É' 3 2
'Ě' 3 2
'F' 5 1
'G' 5 1
'H' 2 3
'I' 1 4
'Í' 2 3
'J' 2 2
'K' 1 3
'L' 1 3
'M' 2 3
'N' 1 5
'Ň' 6 1
'O' 1 6
'Ó' 7 1
'P' 1 3
'R' 1 3
'Ř' 4 2
'S' 1 4
'Š' 4 2
'T' 1 4
'Ť' 7 1
'U' 2 3
'Ú' 5 1
'Ů' 4 1
'V' 1 4
'X' 10 1
'Y' 2 2
'Ý' 4 2
'Z' 2 2
'Ž' 4 1
<END_TILES>

View file

@ -1,3 +1,4 @@
# -*- mode: conf; coding: utf-8; -*-
# Copyright 2005 by Eric House (xwords@eehouse.org). All rights reserved.
#
# This program is free software; you can redistribute it and/or
@ -14,7 +15,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
LANGCODE:da_DK
LANGCODE:da
LANGNAME:Danish
CHARSET: utf-8
# deal with DOS files
@ -42,33 +44,33 @@ LANGINFO: are three non-English letters: 'Å', 'Æ' and 'Ø'. </p>
XLOC_HEADER:0x8900
<BEGIN_TILES>
2 0 {"_"}
7 1 'A|a'
2 4 'Å|å'
2 4 'Æ|æ'
4 3 'B|b'
2 8 'C|c'
5 2 'D|d'
9 1 'E|e'
3 3 'F|f'
3 3 'G|g'
2 4 'H|h'
4 3 'I|i'
2 4 'J|j'
4 3 'K|k'
5 2 'L|l'
3 3 'M|m'
6 1 'N|n'
5 2 'O|o'
2 4 'Ø|ø'
2 4 'P|p'
6 1 'R|r'
5 2 'S|s'
5 2 'T|t'
3 3 'U|u'
3 3 'V|v'
1 8 'X|x'
2 4 'Y|y'
1 8 'Z|z'
{"_"} 0 2
'A|a' 1 7
'Å|å' 4 2
'Æ|æ' 4 2
'B|b' 3 4
'C|c' 8 2
'D|d' 2 5
'E|e' 1 9
'F|f' 3 3
'G|g' 3 3
'H|h' 4 2
'I|i' 3 4
'J|j' 4 2
'K|k' 3 4
'L|l' 2 5
'M|m' 3 3
'N|n' 1 6
'O|o' 2 5
'Ø|ø' 4 2
'P|p' 4 2
'R|r' 1 6
'S|s' 2 5
'T|t' 2 5
'U|u' 3 3
'V|v' 3 3
'X|x' 8 1
'Y|y' 4 2
'Z|z' 8 1
<END_TILES>
# should ignore all after the <END_TILES> above

View file

@ -15,8 +15,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
LANGCODE:nl_NL
LANGNAME:Danish
LANGCODE:nl
# deal with DOS files
LANGFILTER: tr -d '\r'
@ -41,32 +41,32 @@ XLOC_HEADER:0x8B00
<BEGIN_TILES>
2 0 {"_"}
6 1 'A|a'
2 3 'B|b'
2 5 'C|c'
5 2 'D|d'
18 1 'E|e'
2 4 'F|f'
3 3 'G|g'
2 4 'H|h'
4 1 'I|i'
2 4 'J|j'
3 3 'K|k'
3 3 'L|l'
3 3 'M|m'
10 1 'N|n'
6 1 'O|o'
2 3 'P|p'
1 10 'Q|q'
5 2 'R|r'
5 2 'S|s'
5 2 'T|t'
3 4 'U|u'
2 4 'V|v'
2 5 'W|w'
1 8 'X|x'
1 8 'Y|y'
2 4 'Z|z'
{"_"} 0 2
'A|a' 1 6
'B|b' 3 2
'C|c' 5 2
'D|d' 2 5
'E|e' 1 18
'F|f' 4 2
'G|g' 3 3
'H|h' 4 2
'I|i' 1 4
'J|j' 4 2
'K|k' 3 3
'L|l' 3 3
'M|m' 3 3
'N|n' 1 10
'O|o' 1 6
'P|p' 3 2
'Q|q' 10 1
'R|r' 2 5
'S|s' 2 5
'T|t' 2 5
'U|u' 4 3
'V|v' 4 2
'W|w' 5 2
'X|x' 8 1
'Y|y' 8 1
'Z|z' 4 2
<END_TILES>
# should ignore all after the <END_TILES> above

View file

@ -15,7 +15,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
LANGCODE:en_US
LANGCODE:en
LANGNAME:English
# deal with DOS files
LANGFILTER: tr -d '\r'
@ -39,33 +40,33 @@ LANGINFO: will simply be excluded from the dictionary.</p>
XLOC_HEADER:0x8100
<BEGIN_TILES>
2 0 {"_"}
9 1 'A|a'
2 3 'B|b'
2 3 'C|c'
4 2 'D|d'
12 1 'E|e'
2 4 'F|f'
3 2 'G|g'
2 4 'H|h'
9 1 'I|i'
1 8 'J|j'
1 5 'K|k'
4 1 'L|l'
2 3 'M|m'
6 1 'N|n'
8 1 'O|o'
2 3 'P|p'
1 10 'Q|q'
6 1 'R|r'
4 1 'S|s'
6 1 'T|t'
4 1 'U|u'
2 4 'V|v'
2 4 'W|w'
1 8 'X|x'
2 4 'Y|y'
1 10 'Z|z'
{"_"} 0 2
'A|a' 1 9
'B|b' 3 2
'C|c' 3 2
'D|d' 2 4
'E|e' 1 12
'F|f' 4 2
'G|g' 2 3
'H|h' 4 2
'I|i' 1 9
'J|j' 8 1
'K|k' 5 1
'L|l' 1 4
'M|m' 3 2
'N|n' 1 6
'O|o' 1 8
'P|p' 3 2
'Q|q' 10 1
'R|r' 1 6
'S|s' 1 4
'T|t' 1 6
'U|u' 1 4
'V|v' 4 2
'W|w' 4 2
'X|x' 8 1
'Y|y' 4 2
'Z|z' 10 1
<END_TILES>
# should ignore all after the <END> above

View file

@ -16,7 +16,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
XWLANG=Finish
XWLANG=Kotus_2007
LANGCODE=fi_FI
TARGET_TYPE ?= WINCE
ENC = UTF-8

View file

@ -17,6 +17,7 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
LANGCODE:fi
LANGNAME:Finnish
CHARSET: utf-8
LANGFILTER: tr -d '\r'
@ -32,30 +33,30 @@ XLOC_HEADER:0x9900
# From wikipedia
<BEGIN_TILES>
2 0 {"_"}
10 1 'A|a'
5 2 'Ä|ä'
1 8 'B|b'
1 10 'C|c'
1 7 'D|d'
8 1 'E|e'
1 8 'F|f'
1 8 'G|g'
2 4 'H|h'
10 1 'I|i'
2 4 'J|j'
5 2 'K|k'
5 2 'L|l'
3 3 'M|m'
9 1 'N|n'
5 2 'O|o'
1 7 'Ö|ö'
2 4 'P|p'
2 4 'R|r'
7 1 'S|s'
9 1 'T|t'
4 3 'U|u'
2 4 'V|v'
1 8 'W|w'
2 4 'Y|y'
{"_"} 0 2
'A|a' 1 10
'Ä|ä' 2 5
'B|b' 8 1
'C|c' 10 1
'D|d' 7 1
'E|e' 1 8
'F|f' 8 1
'G|g' 8 1
'H|h' 4 2
'I|i' 1 10
'J|j' 4 2
'K|k' 2 5
'L|l' 2 5
'M|m' 3 3
'N|n' 1 9
'O|o' 2 5
'Ö|ö' 7 1
'P|p' 4 2
'R|r' 4 2
'S|s' 1 7
'T|t' 1 9
'U|u' 3 4
'V|v' 4 2
'W|w' 8 1
'Y|y' 4 2
<END_TILES>

View file

@ -1,32 +0,0 @@
# -*-mode: Makefile -*-
# Copyright 2002 by Eric House (xwords@eehouse.org). All rights reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
XWLANG=French
LANGCODE=fr_FR
TARGET_TYPE ?= FRANK
include ../Makefile.langcommon
$(XWLANG)Main.dict.gz: ods3.txt.gz
zcat $< | sed 's/[[:lower:]]*/\U&/' | gzip >$@
# Everything but creating of the Main.dict file is inherited from the
# "parent" Makefile.langcommon in the parent directory.
clean: clean_common
rm -f $(XWLANG)Main.dict.gz *.bin $(XWLANG)*.pdb $(XWLANG)*.seb

View file

@ -0,0 +1 @@
Makefile.ODS7

View file

@ -14,7 +14,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
LANGCODE:fr_FR
LANGCODE:fr
LANGNAME:French
# deal with DOS files
LANGFILTER: tr -d '\r'
@ -37,31 +38,31 @@ LANGINFO: dropping those words from the list prior to compression.</p>
XLOC_HEADER:0x8200
<BEGIN_TILES>
2 0 {"_"}
9 1 'A|a'
2 3 'B|b'
2 3 'C|c'
3 2 'D|d'
15 1 'E|e'
2 4 'F|f'
2 2 'G|g'
2 4 'H|h'
8 1 'I|i'
1 8 'J|j'
1 10 'K|k'
5 1 'L|l'
3 2 'M|m'
6 1 'N|n'
6 1 'O|o'
2 3 'P|p'
1 8 'Q|q'
6 1 'R|r'
6 1 'S|s'
6 1 'T|t'
6 1 'U|u'
2 4 'V|v'
1 10 'W|w'
1 10 'X|x'
1 10 'Y|y'
1 10 'Z|z'
{"_"} 0 2
'A|a' 1 9
'B|b' 3 2
'C|c' 3 2
'D|d' 2 3
'E|e' 1 15
'F|f' 4 2
'G|g' 2 2
'H|h' 4 2
'I|i' 1 8
'J|j' 8 1
'K|k' 10 1
'L|l' 1 5
'M|m' 2 3
'N|n' 1 6
'O|o' 1 6
'P|p' 3 2
'Q|q' 8 1
'R|r' 1 6
'S|s' 1 6
'T|t' 1 6
'U|u' 1 6
'V|v' 4 2
'W|w' 10 1
'X|x' 10 1
'Y|y' 10 1
'Z|z' 10 1
<END_TILES>

View file

@ -1,44 +0,0 @@
# -*- mode: makefile; coding: utf-8; -*-
# Copyright 2002 - 2010 by Eric House (xwords@eehouse.org). All
# rights reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
XWLANG = German
LANGCODE = de_DE
ENC = UTF-8
TARGET_TYPE ?= WINCE
include ../Makefile.langcommon
SOURCEDICT ?= $(XWDICTPATH)/German/HansGerman.dict.gz
$(XWLANG)Main.dict.gz: $(SOURCEDICT) Makefile
file -z $(SOURCEDICT) | grep -q 'UTF-8 Unicode text' || exit 1
zcat $< \
| sed 's,.,\U\0,g' \
| sed -e 's/ß/SS/g' \
| grep '^[AÄBCDEFGHIJKLMNOÖPQRSTUÜVWXYZ]*$$' \
| gzip -c > $@
# Everything but creating of the Main.dict file is inherited from the
# "parent" Makefile.langcommon in the parent directory.
clean: clean_common
rm -f $(XWLANG)Main.dict.gz *.bin $(XWLANG)*.pdb $(XWLANG)*.seb
help:
@echo 'make [SOURCEDICT=HansGerman.dict.gz|deutsch.dict.gz]'

View file

@ -0,0 +1 @@
Makefile.sf

View file

@ -0,0 +1,44 @@
# -*- mode: makefile; coding: utf-8; -*-
# Copyright 2002 - 2010 by Eric House (xwords@eehouse.org). All
# rights reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
XWLANG = German
LANGCODE = de_DE
ENC = UTF-8
TARGET_TYPE ?= WINCE
include ../Makefile.langcommon
SOURCEDICT ?= $(XWDICTPATH)/German/HansGerman.dict.gz
$(XWLANG)Main.dict.gz: $(SOURCEDICT) Makefile
file -z $(SOURCEDICT) | grep -q 'UTF-8 Unicode text' || exit 1
zcat $< \
| sed 's,.,\U\0,g' \
| sed -e 's/ß/SS/g' \
| grep '^[AÄBCDEFGHIJKLMNOÖPQRSTUÜVWXYZ]*$$' \
| gzip -c > $@
# Everything but creating of the Main.dict file is inherited from the
# "parent" Makefile.langcommon in the parent directory.
clean: clean_common
rm -f $(XWLANG)Main.dict.gz *.bin $(XWLANG)*.pdb $(XWLANG)*.seb
help:
@echo 'make [SOURCEDICT=HansGerman.dict.gz|deutsch.dict.gz]'

View file

@ -16,7 +16,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
LANGCODE:de_DE
LANGCODE:de
LANGNAME:German
CHARSET: utf-8
# deal with DOS files
@ -46,37 +47,36 @@ LANGINFO: contain letters not found on tiles.</p>
# German==3. Low byte is padding
XLOC_HEADER:0x8300
<BEGIN_TILES>
2 0 {"_"}
5 1 'A|a'
1 6 'Ä|ä'
2 3 'B|b'
2 4 'C|c'
4 1 'D|d'
15 1 'E|e'
2 4 'F|f'
3 2 'G|g'
4 2 'H|h'
6 1 'I|i'
1 6 'J|j'
2 4 'K|k'
3 2 'L|l'
4 3 'M|m'
9 1 'N|n'
3 2 'O|o'
1 8 'Ö|ö'
1 4 'P|p'
1 10 'Q|q'
6 1 'R|r'
7 1 'S|s'
6 1 'T|t'
6 1 'U|u'
1 6 'Ü|ü'
1 6 'V|v'
1 3 'W|w'
1 8 'X|x'
1 10 'Y|y'
1 3 'Z|z'
{"_"} 0 2
'A|a' 1 5
'Ä|ä' 6 1
'B|b' 3 2
'C|c' 4 2
'D|d' 1 4
'E|e' 1 15
'F|f' 4 2
'G|g' 2 3
'H|h' 2 4
'I|i' 1 6
'J|j' 6 1
'K|k' 4 2
'L|l' 2 3
'M|m' 3 4
'N|n' 1 9
'O|o' 2 3
'Ö|ö' 8 1
'P|p' 4 1
'Q|q' 10 1
'R|r' 1 6
'S|s' 1 7
'T|t' 1 6
'U|u' 1 6
'Ü|ü' 6 1
'V|v' 6 1
'W|w' 3 1
'X|x' 8 1
'Y|y' 10 1
'Z|z' 3 1
<END_TILES>
# should ignore all after the <END_TILES> above

View file

@ -28,7 +28,7 @@ include ../Makefile.langcommon
# Pass in your own dict here by setting DICT
# DICT ?= $(XWDICTPATH)/English/CSW.dict.gz
DICT ?= $(XWDICTPATH)/English/COSD.dict.gz
DICT ?= $(XWDICTPATH)/English/CSW15.dict
# tr 'AE' 'ÄË' doesn't work, so use sed. Note that although we're
# pulling words up to 15 letters in length there are none longer than
@ -36,12 +36,10 @@ DICT ?= $(XWDICTPATH)/English/COSD.dict.gz
# only one is worth publishing.
$(XWLANG)Main.dict.gz: $(DICT)
@echo "building $@ from $<"
zcat $< | \
cat $< | \
sed 's/[[:lower:]]*/\U&/' | \
grep -e '^[A-F]\{2,15\}$$' | \
echo CAFEBABE DEADBEEF $$(cat -) | \
sed 's/A/Ä/g' | \
sed 's/E/Ë/g' | \
tr ' ' '\n' | sort | gzip > $@
# Everything but creating of the Main.dict file is inherited from the

View file

@ -16,13 +16,12 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
LANGCODE:HEX
LANGCODE:hex
LANGNAME:Hex
# uppercase all
LANGFILTER: | sed -e 's/[[:lower:]]*/\U&/'
LANGFILTER: | grep -x '[A-F]\{2,15\}'
LANGFILTER: | sed 's/A/Ä/'
LANGFILTER: | sed 's/E/Ë/'
LANGFILTER: | sort -u
D2DARGS: -term 10
@ -50,12 +49,12 @@ XLOC_HEADER:0xFF00
<BEGIN_TILES>
4 0 {"_"}
9 1 'Ä|ä'
2 3 'B|b'
2 3 'C|c'
4 2 'D|d'
12 1 'Ë|ë'
2 4 'F|f'
{"_"} 0 4
'A|a' 1 9
'B|b' 3 2
'C|c' 3 2
'D|d' 2 4
'E|e' 1 12
'F|f' 4 2
<END_TILES>
# should ignore all after the <END_TILES> above

View file

@ -1,6 +1,7 @@
# -*- mode: conf; coding: utf-8; -*-
LANGCODE:hu_HU
LANGCODE:hu
LANGNAME:Hungarian
CHARSET: utf-8
BUILD_FLAGS:ALLOWS_DUPLICATES
@ -22,43 +23,43 @@ LANGFILTER: | tr '1234567' '\001\002\003\004\005\006\007'
XLOC_HEADER:0x9400
<BEGIN_TILES>
2 0 {"_"}
6 1 'A|a'
4 1 'Á|á'
3 2 'B|b'
1 5 'C|c'
1 7 {"CS|cs"}
3 2 'D|d'
6 1 'E|e'
3 3 'É|é'
2 4 'F|f'
3 2 'G|g'
2 4 {"GY|gy"}
2 3 'H|h'
3 1 'I|i'
1 5 'Í|í'
2 4 'J|j'
6 1 'K|k'
4 1 'L|l'
1 8 {"LY|ly"}
3 1 'M|m'
4 1 'N|n'
1 5 {"NY|ny"}
3 1 'O|o'
3 2 'Ó|ó'
2 4 'Ö|ö'
1 7 'Ő|ö'
2 4 'P|p'
4 1 'R|r'
3 1 'S|s'
2 3 {"SZ|sz"}
5 1 'T|t'
1 10 {"TY|ty"}
2 4 'U|u'
1 7 'Ú|ú'
2 4 'Ü|ü'
1 7 'Ű|ű'
2 3 'V|v'
2 4 'Z|z'
1 8 {"ZS|zs"}
{"_"} 0 2
'A|a' 1 6
'Á|á' 1 4
'B|b' 2 3
'C|c' 5 1
{"CS|cs"} 7 1
'D|d' 2 3
'E|e' 1 6
'É|é' 3 3
'F|f' 4 2
'G|g' 2 3
{"GY|gy"} 4 2
'H|h' 3 2
'I|i' 1 3
'Í|í' 5 1
'J|j' 4 2
'K|k' 1 6
'L|l' 1 4
{"LY|ly"} 8 1
'M|m' 1 3
'N|n' 1 4
{"NY|ny"} 5 1
'O|o' 1 3
'Ó|ó' 2 3
'Ö|ö' 4 2
'Ő|ö' 7 1
'P|p' 4 2
'R|r' 1 4
'S|s' 1 3
{"SZ|sz"} 3 2
'T|t' 1 5
{"TY|ty"} 10 1
'U|u' 4 2
'Ú|ú' 7 1
'Ü|ü' 4 2
'Ű|ű' 7 1
'V|v' 3 2
'Z|z' 4 2
{"ZS|zs"} 8 1
<END_TILES>

View file

@ -25,12 +25,12 @@ TARGET_TYPE = WINCE
include ../Makefile.langcommon
# Pass in your own dict here by setting DICT
DICT ?= $(XWDICTPATH)/English/CSW.dict.gz
DICT ?= $(XWDICTPATH)/English/CSW15.dict
# tr 'AE' 'ÄË' doesn't work, so use sed.
$(XWLANG)Main.dict.gz: $(DICT)
@echo "building $@ from $<"
zcat $< | sed 's/[[:lower:]]*/\U&/' | grep -e '^[A-F]\{2,8\}$$' | \
cat $< | sed 's/[[:lower:]]*/\U&/' | grep -e '^[A-F]\{2,8\}$$' | \
echo CAFEBABE DEADBEEF $$(cat -) | \
sed 's/A/Ä/g' | \
sed 's/E/Ë/g' | \

View file

@ -16,7 +16,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
LANGCODE:HEX
LANGCODE:hë
LANGNAME:Hëx
# uppercase all
LANGFILTER: | sed -e 's/[[:lower:]]*/\U&/'
@ -50,12 +51,12 @@ XLOC_HEADER:0xFF00
<BEGIN_TILES>
4 0 {"_"}
9 1 'Ä'
2 3 'B'
2 3 'C'
4 2 'D'
12 1 'Ë'
2 4 'F'
{"_"} 0 4
'Ä|ä' 1 9
'B|b' 3 2
'C|c' 3 2
'D|d' 2 4
'Ë|ë' 1 12
'F|f' 4 2
<END_TILES>
# should ignore all after the <END_TILES> above

View file

@ -15,7 +15,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
LANGCODE:it_IT
LANGCODE:it
LANGNAME:Italian
# deal with DOS files
LANGFILTER: tr -d '\r'
@ -35,31 +36,31 @@ XLOC_HEADER:0x8A00
# tile values taken from http://www.gtoal.com/wordgames/details/italian/
<BEGIN_TILES>
2 0 {"_"}
13 1 'A|a'
3 5 'B|b'
4 4 'C|c'
3 5 'D|d'
13 1 'E|e'
2 8 'F|f'
3 5 'G|g'
2 8 'H|h'
13 1 'I|i'
0 1 'J|j'
0 1 'K|k'
5 3 'L|l'
5 3 'M|m'
6 2 'N|n'
13 1 'O|o'
3 5 'P|p'
1 10 'Q|q'
6 2 'R|r'
6 2 'S|s'
6 2 'T|t'
5 3 'U|u'
4 4 'V|v'
0 1 'W|w'
0 1 'X|x'
0 1 'Y|y'
2 8 'Z|z'
{"_"} 0 2
'A|a' 1 13
'B|b' 5 3
'C|c' 4 4
'D|d' 5 3
'E|e' 1 13
'F|f' 8 2
'G|g' 5 3
'H|h' 8 2
'I|i' 1 13
'J|j' 1 0
'K|k' 1 0
'L|l' 3 5
'M|m' 3 5
'N|n' 2 6
'O|o' 1 13
'P|p' 5 3
'Q|q' 10 1
'R|r' 2 6
'S|s' 2 6
'T|t' 2 6
'U|u' 3 5
'V|v' 4 4
'W|w' 1 0
'X|x' 1 0
'Y|y' 1 0
'Z|z' 8 2
<END_TILES>

View file

@ -220,7 +220,8 @@ endif
frankspecials.bin: ../frank_mkspecials.py $(BMPFILES)
$< $(BLANK_INFO) $(LANG_SPECIAL_INFO) > $@
$(XWLANG)%.$(FRANK_EXT): dawg$(XWLANG)%.stamp $(XWLANG)%_flags.bin $(XWLANG)%_newheader.bin charcount.bin table.bin values.bin frankspecials.bin
$(XWLANG)%.$(FRANK_EXT): dawg$(XWLANG)%.stamp $(XWLANG)%_flags.bin $(XWLANG)%_newheader.bin \
charcount.bin table.bin values.bin frankspecials.bin
cat $(XWLANG)$*_flags.bin $(XWLANG)$*_newheader.bin charcount.bin table.bin values.bin \
frankspecials.bin $(XWLANG)StartLoc.bin \
$$(ls dawg$(XWLANG)$*_*.bin) > $@
@ -273,6 +274,9 @@ allbins:
$(MAKE) TARGET_TYPE=FRANK byodbins
rm palmspecials.bin
extraCounts.bin: ../xloc.py info.txt
../xloc.py -ec -out $@
table.bin: ../xloc.py
ifdef NEWDAWG
../xloc.py $(ENCP) -tn -out $@
@ -298,6 +302,15 @@ $(XWLANG)%_note.bin:
echo -n $(DICTNOTE) > $@
perl -e "print pack(\"c\",0)" >> $@
langCode.bin: ../xloc.py
../xloc.py -info LANGCODE -out $@
langName.bin: ../xloc.py
../xloc.py -info LANGNAME -out $@
otherCounts.bin: ../xloc.py
../xloc.py -oc -out otherCounts.bin
$(XWLANG)%_md5sum.bin:
cat table.bin values.bin frankspecials.bin $(XWLANG)StartLoc.bin \
dawg$(XWLANG)$*_*.bin | md5sum | awk '{print $$1}' | tr -d '\n' > $@
@ -308,7 +321,8 @@ $(XWLANG)%_headerFlags.bin:
perl -e "print pack(\"n\",$$FLAGS)" > $@
$(XWLANG)%_newheader.bin: $(XWLANG)%_wordcount.bin $(XWLANG)%_note.bin \
$(XWLANG)%_md5sum.bin $(XWLANG)%_headerFlags.bin
$(XWLANG)%_md5sum.bin $(XWLANG)%_headerFlags.bin langCode.bin \
langName.bin otherCounts.bin
SIZ=0; \
for FILE in $+; do \
SIZ=$$(($$SIZ + $$(ls -l $$FILE | awk '{print $$5}'))); \

View file

@ -16,7 +16,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
LANGCODE:pl_PL
LANGCODE:pl
LANGNAME:Polish
CHARSET:utf-8
# deal with DOS files
@ -50,39 +51,39 @@ LANGINFO: other languages it&apos;s the first.</p>
XLOC_HEADER:0x8800
<BEGIN_TILES>
9 1 'A|a'
1 5 'Ą|ą'
2 3 'B|b'
3 2 'C|c'
1 6 'Ć|ć'
3 2 'D|d'
7 1 'E|e'
1 5 'Ę|ę'
1 5 'F|f'
2 3 'G|g'
2 3 'H|h'
8 1 'I|i'
2 3 'J|j'
3 3 'K|k'
3 2 'L|l'
2 3 'Ł|ł'
3 2 'M|m'
5 1 'N|n'
1 7 'Ń|ń'
6 1 'O|o'
1 5 'Ó|ó'
3 2 'P|p'
4 1 'R|r'
4 1 'S|s'
1 5 'Ś|ś'
3 2 'T|t'
2 3 'U|u'
4 1 'W|w'
4 2 'Y|y'
5 1 'Z|z'
1 9 'Ź|ź'
1 5 'Ż|ż'
'A|a' 1 9
'Ą|ą' 5 1
'B|b' 3 2
'C|c' 2 3
'Ć|ć' 6 1
'D|d' 2 3
'E|e' 1 7
'Ę|ę' 5 1
'F|f' 5 1
'G|g' 3 2
'H|h' 3 2
'I|i' 1 8
'J|j' 3 2
'K|k' 3 3
'L|l' 2 3
'Ł|ł' 3 2
'M|m' 2 3
'N|n' 1 5
'Ń|ń' 7 1
'O|o' 1 6
'Ó|ó' 5 1
'P|p' 2 3
'R|r' 1 4
'S|s' 1 4
'Ś|ś' 5 1
'T|t' 2 3
'U|u' 3 2
'W|w' 1 4
'Y|y' 2 4
'Z|z' 1 5
'Ź|ź' 9 1
'Ż|ż' 5 1
# the blank *must* be last here!!!
2 0 {"_"}
{"_"} 0 2
<END_TILES>

View file

@ -14,7 +14,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
LANGCODE:pt_PT
LANGCODE:pt
LANGNAME:Portuguese
CHARSET: utf-8
# deal with DOS files
@ -41,31 +42,31 @@ XLOC_HEADER:0x8D00
<BEGIN_TILES>
3 0 {"_"}
14 1 'A|a'
3 3 'B|b'
4 2 'C|c'
2 3 'Ç|ç'
5 2 'D|d'
11 1 'E|e'
2 4 'F|f'
2 4 'G|g'
2 4 'H|h'
10 1 'I|i'
2 5 'J|j'
5 2 'L|l'
6 1 'M|m'
4 3 'N|n'
10 1 'O|o'
4 2 'P|p'
1 6 'Q|q'
6 1 'R|r'
8 1 'S|s'
5 1 'T|t'
7 1 'U|u'
2 4 'V|v'
1 8 'X|x'
1 8 'Z|z'
{"_"} 0 3
'A|a' 1 14
'B|b' 3 3
'C|c' 2 4
'Ç|ç' 3 2
'D|d' 2 5
'E|e' 1 11
'F|f' 4 2
'G|g' 4 2
'H|h' 4 2
'I|i' 1 10
'J|j' 5 2
'L|l' 2 5
'M|m' 1 6
'N|n' 3 4
'O|o' 1 10
'P|p' 2 4
'Q|q' 6 1
'R|r' 1 6
'S|s' 1 8
'T|t' 1 5
'U|u' 1 7
'V|v' 4 2
'X|x' 8 1
'Z|z' 8 1
<END_TILES>
# should ignore all after the <END_TILES> above

View file

@ -18,6 +18,7 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
LANGCODE:ro
LANGNAME:Romanian
# deal with DOS files
LANGFILTER: tr -d '\r'
@ -42,29 +43,29 @@ XLOC_HEADER:0x9500
# Number Value Letter
<BEGIN_TILES>
2 0 {"_"}
11 1 'A|a'
2 9 'B|b'
5 1 'C|c'
4 2 'D|d'
9 1 'E|e'
2 8 'F|f'
2 9 'G|g'
1 10 'H|h'
10 1 'I|i'
1 10 'J|j'
4 1 'L|l'
3 4 'M|m'
6 1 'N|n'
5 1 'O|o'
4 2 'P|p'
7 1 'R|r'
5 1 'S|s'
7 1 'T|t'
6 1 'U|u'
2 8 'V|v'
1 10 'X|x'
1 10 'Z|z'
{"_"} 0 2
'A|a' 1 11
'B|b' 9 2
'C|c' 1 5
'D|d' 2 4
'E|e' 1 9
'F|f' 8 2
'G|g' 9 2
'H|h' 10 1
'I|i' 1 10
'J|j' 10 1
'L|l' 1 4
'M|m' 4 3
'N|n' 1 6
'O|o' 1 5
'P|p' 2 4
'R|r' 1 7
'S|s' 1 5
'T|t' 1 7
'U|u' 1 6
'V|v' 8 2
'X|x' 10 1
'Z|z' 10 1
<END_TILES>
# should ignore all after the <END> above

View file

@ -16,7 +16,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
LANGCODE:ru_RU
LANGCODE:ru
LANGNAME:Russian
CHARSET:windows-1251
# deal with DOS files
@ -38,38 +39,38 @@ LANGINFO: contain letters not listed below are removed.</p>
XLOC_HEADER:0x8F00
<BEGIN_TILES>
8 1 'Ŕ'
2 3 'Á'
4 1 'Â'
2 3 'Ă'
2 2 'Ä'
7 1 'Ĺ'
1 4 'Ć'
1 3 'Ç'
7 1 'Č'
1 2 'É'
4 2 'Ę'
4 2 'Ë'
2 3 'Ě'
4 1 'Í'
9 1 'Î'
4 2 'Ď'
5 1 'Đ'
5 1 'Ń'
7 1 'Ň'
4 2 'Ó'
1 5 'Ô'
1 4 'Ő'
1 4 'Ö'
1 3 '×'
1 4 'Ř'
1 5 'Ů'
1 10 'Ú'
2 2 'Ű'
4 1 'Ü'
1 8 'Ý'
1 5 'Ţ'
2 2 'ß'
2 0 {"_"}
'Ŕ' 1 8
'Á' 3 2
'Â' 1 4
'Ă' 3 2
'Ä' 2 2
'Ĺ' 1 7
'Ć' 4 1
'Ç' 3 1
'Č' 1 7
'É' 2 1
'Ę' 2 4
'Ë' 2 4
'Ě' 3 2
'Í' 1 4
'Î' 1 9
'Ď' 2 4
'Đ' 1 5
'Ń' 1 5
'Ň' 1 7
'Ó' 2 4
'Ô' 5 1
'Ő' 4 1
'Ö' 4 1
'×' 3 1
'Ř' 4 1
'Ů' 5 1
'Ú' 10 1
'Ű' 2 2
'Ü' 1 4
'Ý' 8 1
'Ţ' 5 1
'ß' 2 2
{"_"} 0 2
<END_TILES>
# should ignore all after the <END_TILES> above

View file

@ -16,7 +16,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
LANGCODE:sk_SK
LANGCODE:sk
LANGNAME:Slovak
CHARSET:utf-8
# deal with DOS files
@ -38,47 +39,47 @@ XLOC_HEADER:0x9300
#COUNT VAL FACE
# converted from http://www.deskovehry.info/pravidla/scrabble/scrabble-sk.htm
<BEGIN_TILES>
9 1 'A'
1 4 'Á'
1 10 'Ä'
2 4 'B'
1 4 'C'
1 5 'Č'
3 2 'D'
1 8 'Ď'
8 1 'E'
1 7 'É'
1 8 'F'
1 8 'G'
1 4 'H'
5 1 'I'
1 5 'Í'
2 3 'J'
3 2 'K'
3 2 'L'
1 10 'Ĺ'
1 7 'Ľ'
4 2 'M'
5 1 'N'
1 8 'Ň'
9 1 'O'
1 8 'Ô'
1 10 'Ó'
3 2 'P'
4 1 'R'
1 10 'Ŕ'
4 1 'S'
1 5 'Š'
4 1 'T'
1 7 'Ť'
2 3 'U'
1 7 'Ú'
4 1 'V'
1 10 'X'
1 4 'Y'
1 5 'Ý'
1 4 'Z'
1 5 'Ž'
'A|a' 1 9
'Á|á' 4 1
'Ä|ä' 10 1
'B|b' 4 2
'C|c' 4 1
'Č|č' 5 1
'D|d' 2 3
'Ď|ď' 8 1
'E|e' 1 8
'É|é' 7 1
'F|f' 8 1
'G|g' 8 1
'H|h' 4 1
'I|i' 1 5
'Í|í' 5 1
'J|j' 3 2
'K|k' 2 3
'L|l' 2 3
'Ĺ|ĺ' 10 1
'Ľ|ľ' 7 1
'M|m' 2 4
'N|n' 1 5
'Ň|ň' 8 1
'O|o' 1 9
'Ô|ô' 8 1
'Ó|ó' 10 1
'P|p' 2 3
'R|r' 1 4
'Ŕ|ŕ' 10 1
'S|s' 1 4
'Š|š' 5 1
'T|t' 1 4
'Ť|ť' 7 1
'U|u' 3 2
'Ú|ú' 7 1
'V|v' 1 4
'X|x' 10 1
'Y|y' 4 1
'Ý|ý' 5 1
'Z|z' 4 1
'Ž|ž' 5 1
# the blank *must* be last here!!!
2 0 {"_"}
{"_"} 0 2
<END_TILES>

View file

@ -19,9 +19,12 @@
# no way can unix sort handle the control chars I'm adding to text
# below
LANGCODE:es
LANGNAME:Spanish
NEEDSSORT:true
CHARSET: utf-8
# MSDos LF chars go bye-bye
LANGFILTER: tr -d '\r'
@ -77,34 +80,34 @@ LANGCODE:es_ES
XLOC_HEADER:0x8600
<BEGIN_TILES>
2 0 {"_"}
12 1 'A|a'
2 3 'B|b'
4 3 'C|c'
1 5 {"CH|ch|Ch|cH",true,true}
5 2 'D|d'
12 1 'E|e'
1 4 'F|f'
2 2 'G|g'
2 4 'H|h'
6 1 'I|i'
1 8 'J|j'
4 1 'L|l'
1 8 {"LL|ll|Ll|lL", true, true}
2 3 'M|m'
5 1 'N|n'
1 8 'Ñ|ñ'
9 1 'O|o'
2 3 'P|p'
1 5 'Q|q'
5 1 'R|r'
1 8 {"RR|rr|Rr|rR",true,true}
6 1 'S|s'
4 1 'T|t'
5 1 'U|u'
1 4 'V|v'
1 8 'X|x'
1 4 'Y|y'
1 10 'Z|z'
{"_"} 0 2
'A|a' 1 12
'B|b' 3 2
'C|c' 3 4
{"CH|ch|Ch|cH",true,true} 5 1
'D|d' 2 5
'E|e' 1 12
'F|f' 4 1
'G|g' 2 2
'H|h' 4 2
'I|i' 1 6
'J|j' 8 1
'L|l' 1 4
{"LL|ll|Ll|lL",true,true} 8 1
'M|m' 3 2
'N|n' 1 5
'Ñ|ñ' 8 1
'O|o' 1 9
'P|p' 3 2
'Q|q' 5 1
'R|r' 1 5
{"RR|rr|Rr|rR",true,true} 8 1
'S|s' 1 6
'T|t' 1 4
'U|u' 1 5
'V|v' 4 1
'X|x' 8 1
'Y|y' 4 1
'Z|z' 10 1
<END_TILES>
# should ignore all after the <END> above

View file

@ -26,13 +26,14 @@ TARGET_TYPE ?= WINCE
include ../Makefile.langcommon
SOURCEDICT ?= $(XWDICTPATH)/Swedish/swedish15.utf8.gz
SOURCEDICT ?= $(XWDICTPATH)/Swedish/swedish15.txt
# Q and W are not available as tiles, but I'm told there's a custom in
# Swedish play of allowing blanks to stand for those letters as well.
# So we don't exclude words with those letters from the dictionary.
$(XWLANG)Main.dict.gz: $(SOURCEDICT) Makefile
zcat $< | sed 's/[[:lower:]]*/\U&/' | \
cat $< | iconv -f ISO-8859-1 -t $(ENC) | \
sed 's/[[:lower:]]*/\U&/' | \
LANG=$(LANGCODE):$(ENC) grep '^[A-ZÄÅÆÖÜ]\{2,15\}$$' | \
gzip -c > $@

View file

@ -16,7 +16,8 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
CHARSET: utf-8
LANGCODE:sv_SE
LANGCODE:sv
LANGNAME:Swedish
LANGFILTER: tr -d '\r'
# uppercase all
@ -33,45 +34,44 @@ LANGINFO: and W, and adds Ä, Å, Æ, Ö and Ü.</p>
XLOC_HEADER:0x8700
<BEGIN_TILES>
2 0 {"_"}
8 1 'A|a'
{"_"} 0 2
'A|a' 1 8
# A with two dots
2 3 'Ä|ä'
'Ä|ä' 3 2
# A with circle
2 4 'Å|å'
'Å|å' 4 2
# Æ tile only available for blanks
0 1 'Æ|æ'
2 4 'B|b'
1 8 'C|c'
5 1 'D|d'
7 1 'E|e'
2 3 'F|f'
3 2 'G|g'
2 2 'H|h'
5 1 'I|i'
1 7 'J|j'
3 2 'K|k'
5 1 'L|l'
3 2 'M|m'
6 1 'N|n'
5 2 'O|o'
'Æ|æ' 1 0
'B|b' 4 2
'C|c' 8 1
'D|d' 1 5
'E|e' 1 7
'F|f' 3 2
'G|g' 2 3
'H|h' 2 2
'I|i' 1 5
'J|j' 7 1
'K|k' 2 3
'L|l' 1 5
'M|m' 2 3
'N|n' 1 6
'O|o' 2 5
# O with two dots
2 4 'Ö|ö'
2 4 'P|p'
'Ö|ö' 4 2
'P|p' 4 2
# Q tile only available for blanks
0 1 'Q|q'
8 1 'R|r'
8 1 'S|s'
8 1 'T|t'
3 4 'U|u'
'Q|q' 1 0
'R|r' 1 8
'S|s' 1 8
'T|t' 1 8
'U|u' 4 3
# Ü tile only available for blanks
0 1 'Ü|ü'
2 3 'V|v'
'Ü|ü' 1 0
'V|v' 3 2
# W tile only available for blanks
0 1 'W|w'
1 8 'X|x'
1 7 'Y|y'
1 10 'Z|z'
'W|w' 1 0
'X|x' 8 1
'Y|y' 7 1
'Z|z' 10 1
<END_TILES>

View file

@ -14,7 +14,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
LANGCODE:tr_TR
LANGCODE:tr
LANGNAME:Turkish
CHARSET: utf-8
LANGINFO: <p>Turkish is untested with actual wordlists!</p>
@ -22,34 +23,34 @@ LANGINFO: <p>Turkish is untested with actual wordlists!</p>
XLOC_HEADER:0x8400
<BEGIN_TILES>
2 0 {"_"}
12 1 'A'
2 3 'B'
2 4 'C'
2 4 'Ç'
2 3 'D'
8 1 'E'
1 7 'F'
1 5 'G'
1 8 'Ğ'
1 5 'H'
4 2 'I'
7 1 'İ'
1 10 'J'
7 1 'K'
7 1 'L'
4 2 'M'
5 1 'N'
3 2 'O'
1 7 'Ö'
1 5 'P'
6 1 'R'
3 2 'S'
2 4 'Ş'
5 1 'T'
3 2 'U'
2 3 'Ü'
1 7 'V'
2 3 'Y'
2 4 'Z'
{"_"} 0 2
'A' 1 12
'B' 3 2
'C' 4 2
'Ç' 4 2
'D' 3 2
'E' 1 8
'F' 7 1
'G' 5 1
'Ğ' 8 1
'H' 5 1
'I' 2 4
'İ' 1 7
'J' 10 1
'K' 1 7
'L' 1 7
'M' 2 4
'N' 1 5
'O' 2 3
'Ö' 7 1
'P' 5 1
'R' 1 6
'S' 2 3
'Ş' 4 2
'T' 1 5
'U' 2 3
'Ü' 3 2
'V' 7 1
'Y' 3 2
'Z' 4 2
<END_TILES>

View file

@ -54,12 +54,18 @@ def splitFaces( buf ):
return faces
def loadCountsAndValues( fh, numFaces, data ):
twoBytesFmt = struct.Struct('BB')
def loadCountsAndValues( fh, numFaces, extraData, data ):
for ii in range(numFaces):
pair = twoBytesFmt.unpack(fh.read(twoBytesFmt.size))
data[ii]['count'] = int(pair[0])
data[ii]['val'] = int(pair[1])
data[ii]['counts'] = {15: int.from_bytes(fh.read(1), 'little')}
data[ii]['val'] = int.from_bytes(fh.read(1), 'little')
if extraData:
buf = io.BytesIO(extraData)
while True:
siz = int.from_bytes(buf.read(1), 'little')
if not siz: break
for ii in range(numFaces):
count = int.from_bytes(buf.read(1), 'little')
data[ii]['counts'][siz] = count
def eatBitmap( fh ):
nCols = int(oneByteFmt.unpack(fh.read(oneByteFmt.size))[0])
@ -142,6 +148,7 @@ def process(args):
with open(args.DAWG, "rb") as dawg:
nWords = 0
extraData = None
headerFmt = struct.Struct('!HH')
(flags, headerLen) = headerFmt.unpack(dawg.read(headerFmt.size))
@ -162,7 +169,22 @@ def process(args):
sys.exit(0)
md5Sum = getNullTermParam(header)
print( 'header: read sum: {}'.format(md5Sum), file=sys.stderr )
except:
# skip header flags
header.read(2)
print( 'header: skipped flags', file=sys.stderr)
langCode = getNullTermParam(header)
langName = getNullTermParam(header)
print('header: langCode: {}; langName: {}'.format(langCode, langName),
file=sys.stderr)
extraSize = int.from_bytes(header.read(1), 'little')
print( 'header: extraSize: {}'.format(extraSize), file=sys.stderr )
extraData = header.read(extraSize)
except Exception as ex:
print( 'header: exception!! {} '.format(ex) )
md5Sum = None
if args.GET_SUM:
@ -214,7 +236,7 @@ def process(args):
langCode = 0x7F & oneByteFmt.unpack(dawg.read(oneByteFmt.size))[0]
dawg.read( oneByteFmt.size ) # skip byte
loadCountsAndValues( dawg, numFaces, data )
loadCountsAndValues( dawg, numFaces, extraData, data )
loadSpecialData( dawg, data )
offsetStruct = struct.Struct('!L')

View file

@ -8,7 +8,12 @@ def errorOut(msg):
def mkParser():
parser = argparse.ArgumentParser()
parser.add_argument('-enc', dest = 'ENCODING', type = str, help = 'use this encoding' )
parser.add_argument('-tn', dest = 'DO_TABLE', action = 'store_true', help = 'output table file' )
parser.add_argument('-tn', dest = 'DO_TABLE', action = 'store_true',
help = 'output table file' )
parser.add_argument('-oc', dest = 'DO_OTHERCOUNTS', action = 'store_true',
help = 'write extra (non-15x15 board) counts' )
parser.add_argument('-info', dest = 'INFO_KEY', type = str,
help = 'info.txt keyword to write null-terminated' )
# parser.add_argument('-tn', dest = 'UNICODE', default = False,
# action = 'store_true', help = 'assume unicode')
@ -53,8 +58,10 @@ def parseTileInfo(infoFile, encoding):
if sEndTiles.match(line):
break
else:
(count, val, face) = line.split(None, 2)
result['_TILES'].append((count, val, face))
(face, val, counts) = line.split(None, 2)
result['_TILES'].append({'counts': counts,
'val': val,
'face': face})
elif sBeginTiles.match(line):
inTiles = True
else:
@ -71,12 +78,18 @@ def printLetters( letters, outfile ):
letters = ' '.join(letters)
outfile.write(letters.encode('utf8'))
def writeInfoFile(xlocToken, key, outfile):
val = xlocToken[key]
assert val
outfile.write(val.encode('utf8'))
outfile.write(struct.pack('B', 0 ))
def writeMapFile(xlocToken, outfile):
print('writeMapFile()')
print('writeMapFile(out={})'.format(outfile))
tiles = xlocToken['_TILES']
specialCount = 0
for tile in tiles:
face = tile[2]
face = tile['face']
match = sSingleCharMatch.match(face)
if match:
printLetters( match.group(1), outfile )
@ -94,13 +107,39 @@ def writeMapFile(xlocToken, outfile):
def writeValuesFile(xlocToken, outfile):
header = xlocToken.get('XLOC_HEADER') or errorOut('no XLOC_HEADER found')
print('writing header: {}'.format(header))
print('writeValuesFile(out={}): writing header: {}'.format(outfile, header))
outfile.write(struct.pack('!H', int(header, 16)))
cs = xlocToken.get('COUNT_SIZES', '15').split()
useOffset = cs.index('15')
nCounts = 0
for tile in xlocToken['_TILES']:
val = int(tile[0])
count = int(tile[1])
outfile.write(struct.pack('BB', val, count))
counts = tile['counts'].split()
assert nCounts == 0 or nCounts == len(counts)
nCounts = len(counts)
assert nCounts == len(cs)
outfile.write(struct.pack('B', int(counts[useOffset])))
val = int(tile['val'])
outfile.write(struct.pack('B', val))
def writeOtherCounts(xlocToken, outfile):
cs = xlocToken.get('COUNT_SIZES', '15').split()
tiles = xlocToken['_TILES']
# Write the size of the data so it can be skipped by the reader,
# which won't know how many faces the tile set has yet.
totalSiz = (len(cs) - 1) * (1 + len(tiles))
outfile.write(struct.pack('B', totalSiz))
for useOffset in range(len(cs)):
siz = int(cs[useOffset])
if siz == 15: continue
outfile.write(struct.pack('B', siz))
for tile in tiles:
count = tile['counts'].split()[useOffset]
outfile.write(struct.pack('B', int(count)))
def main():
print('{}.main {} called'.format(sys.argv[0], sys.argv[1:]))
@ -111,6 +150,10 @@ def main():
errorOut('{} not found'.format(infoFile))
xlocToken = parseTileInfo(infoFile, args.ENCODING)
if args.INFO_KEY and args.OUTFILE:
with open(args.OUTFILE, 'wb') as outfile:
writeInfoFile(xlocToken, args.INFO_KEY, outfile);
if args.DO_TABLE or args.TABLE_FILE:
path = args.TABLE_FILE or args.OUTFILE
with open(path, 'wb') as outfile:
@ -127,6 +170,10 @@ def main():
with open(path, 'wb') as outfile:
writeValuesFile( xlocToken, outfile )
if args.DO_OTHERCOUNTS and args.OUTFILE:
with open(args.OUTFILE, 'wb') as outfile:
writeOtherCounts(xlocToken, outfile)
##############################################################################
if __name__ == '__main__':
main()