summaryrefslogtreecommitdiff
path: root/modules/locale/locale.schema
blob: 70d4fbb5c84a56c88283e372587abebebbca0ed3 (plain)
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
<?php
// $Id$

function locale_schema() {
  $schema['languages'] = array(
    'fields' => array(
      // Language code, eg 'de' or 'en-US'.
      'language'   => array('type' => 'varchar', 'length' => 12, 'not null' => TRUE, 'default' => ''),
      // Language name in English.
      'name'       => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => ''),
      // Native language name.
      'native'     => array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => ''),
      // LANGUAGE_RTL or LANGUAGE_LTR
      'direction'  => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
      // Enabled flag.
      'enabled'    => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
      // Number of plural indexes in this language.
      'plurals'    => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
      // Plural formula in PHP code to evaluate to get plural indexes.
      'formula'    => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
      // Domain to use for this language.
      'domain'     => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
      // Path prefix to use for this language.
      'prefix'     => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
      // Weight, used in lists of languages.
      'weight'     => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
      // Location of JavaScript translation file.
      'javascript' => array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''),
    ),
    'primary key' => array('language'),
  );

  $schema['locales_source'] = array(
    'fields' => array(
      // Unique identifier of this string.
      'lid'       => array('type' => 'serial', 'not null' => TRUE),
      // Drupal path in case of online discovered translations or file path in case of imported strings.
      'location'  => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
      // A module defined group of translations, see hook_locale().
      'textgroup' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
      // The original string in English.
      'source'    => array('type' => 'text', 'mysql_type' => 'blob', 'not null' => TRUE),
    ),
    'primary key' => array('lid'),
    'indexes' => array
        ('source' => array(array('source', 30))),
  );

  $schema['locales_target'] = array(
    'fields' => array(
      // References locales_source.
      'lid'         => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
      // Translation string value in this language.
      'translation' => array('type' => 'text', 'mysql_type' => 'blob', 'not null' => TRUE),
      // Language code referencing the languages table.
      'language'    => array('type' => 'varchar', 'length' => 12, 'not null' => TRUE, 'default' => ''),
      // Parent lid (lid of the previous string in the plural chain) in case of plural strings.
      'plid'        => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
      // Plural index number in case of plural strings.
      'plural'      => array('type' => 'int', 'not null' => TRUE, 'default' => 0)
    ),
    'indexes' => array(
      'language'   => array('language'),
      'lid'    => array('lid'),
      'plid'   => array('plid'),
      'plural' => array('plural')
    ),
  );

  return $schema;
}