Home | History | Annotate | Download | only in de
      1 #!/usr/bin/env python
      2 
      3 # Copyright (C) 2015 The Android Open Source Project
      4 #
      5 # Licensed under the Apache License, Version 2.0 (the 'License');
      6 # you may not use this file except in compliance with the License.
      7 # You may obtain a copy of the License at
      8 #
      9 #      http://www.apache.org/licenses/LICENSE-2.0
     10 #
     11 # Unless required by applicable law or agreed to in writing, software
     12 # distributed under the License is distributed on an 'AS IS' BASIS,
     13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 # See the License for the specific language governing permissions and
     15 # limitations under the License.
     16 
     17 """Generate case mappings from German pattern files."""
     18 
     19 import codecs
     20 
     21 for locale in ['de-1901', 'de-1996', 'de-ch-1901']:
     22     all_chars = set()
     23     with codecs.open('hyph-%s.pat.txt' % locale, 'r', 'UTF-8') as pat_file:
     24         for line in pat_file:
     25             line = line.strip()
     26             all_chars |= set(line)
     27     all_chars.remove('.')
     28     all_chars -= set('0123456789')
     29 
     30     with codecs.open('hyph-%s.chr.txt' % locale, 'w', 'UTF-8') as chr_file:
     31         for c in sorted(all_chars):
     32             # Since Android uses the chr files to map uppercase to lowercase,
     33             # map lowercase sharp s to uppercase sharp s instead of SS.
     34             uppercase = u'\u1E9E' if c == u'\u00DF' else c.upper()
     35             chr_file.write('%s%s\n' % (c, uppercase))
     36 
     37