code.fastix.org

Dateiansicht:

Datei:Projekte -> PHP:internationalisierte Zeitangaben ohne strftime oder Intl-Extension -> data_generator.php
md5:609ceef7b2f44654c772ab9c00f7d5c1
sha1:6129e47d3a4c89c6701811ee80613c9fe7991136
Download-Link:Download
  1. <?php
  2.  
  3. error_reporting( E_ALL );
  4. ini_set( 'display_errors', 1 );
  5.  
  6. ########### Settings ###############
  7.  
  8. define ( 'OUTPUT_DIR',         __DIR__ . '/data');
  9. define ( 'OUTPUT_JSON',        true );
  10. define ( 'OUTPUT_SER',         true );
  11. define ( 'OUTPUT_BIGFILE',     true );
  12. define ( 'OUTPUT_SMALL_FILES', true );
  13.  
  14. ## USE ONE OF THEM:
  15. # Nice to show, but bigger Files:
  16. #define ( 'JSON_OPTIONS',       JSON_INVALID_UTF8_SUBSTITUTE | JSON_PRETTY_PRINT );
  17. # Smaller Files:
  18. define ( 'JSON_OPTIONS',       JSON_INVALID_UTF8_SUBSTITUTE );
  19.  
  20. ########### PROGRAM ###############
  21.  
  22. $arLocales = explode( "\n", `locale -a` );
  23. array_pop( $arLocales );
  24.  
  25. $types['types'][] = 'day_short';
  26. $types['types'][] = 'day';
  27. $types['types'][] = 'month_short';
  28. $types['types'][] = 'month';
  29. $types['types_reverse']['day_short']   = 0;
  30. $types['types_reverse']['day']         = 1;
  31. $types['types_reverse']['month_short'] = 2;
  32. $types['types_reverse']['month']       = 3;
  33.  
  34. foreach ( $arLocales as $loci ) {
  35.  
  36.         $y=2024; #2024 begins with monday
  37.         $m=1;
  38.  
  39.     # to become a clear numbered array
  40.         $translations[$loci][0][0] = '';
  41.         $translations[$loci][1][0] = '';
  42.         for ( $d = 1; $d < 8; $d++ ) {
  43.                 $strDate = "${y}-${m}-${d}";
  44.                 $sys = "LANG=${loci} date +%a --date='${y}-${m}-${d}'";
  45.                 $translations[$loci][0][$d] = trim( `$sys` );
  46.                
  47.                 $sys = "LANG=${loci} date +%A --date='${y}-${m}-${d}'";
  48.                 $translations[$loci][1][$d] = trim( `$sys` );
  49.         }
  50.         # set sunday as day 7 and 0:
  51.         $translations[$loci][0][0] = $translations[$loci][0][7];
  52.         $translations[$loci][1][0] = $translations[$loci][1][7];
  53.  
  54.         $d=1;
  55.        
  56.         $translations[$loci][2][0] = false;
  57.         $translations[$loci][3][0] = false;
  58.         for ( $m = 1; $m < 13; $m++ ) {
  59.                 $strDate = "${y}-${m}-${d}";
  60.                 $sys = "LANG=${loci} date +%b --date='${y}-${m}-${d}'";
  61.                 $str = trim( `$sys` );
  62.                 $translations[$loci][2][$m] = $str;
  63.                 $sys = "LANG=${loci} date +%B --date='${y}-${m}-${d}'";
  64.                 $str = trim( `$sys` );
  65.                 $translations[$loci][3][$m] = $str;
  66.         }
  67. }
  68.  
  69. if ( OUTPUT_JSON ) {
  70.         if ( ! file_put_contents( OUTPUT_DIR . '/_date_names_by_number_types.json',  json_encode( $types, JSON_OPTIONS ) ) ) {
  71.                       trigger_error( OUTPUT_DIR  . '/_date_names_by_number.types.json NOT written or EMPTY.' );
  72.         }
  73. }
  74. if ( OUTPUT_SER ) {
  75.         if ( ! file_put_contents( OUTPUT_DIR . '/_date_names_by_number_types.ser',  serialize( $types ) ) ) {
  76.                       trigger_error( OUTPUT_DIR  . '/_date_names_by_number.types.ser NOT written or EMPTY.' );
  77.         }      
  78. }
  79.  
  80. if ( OUTPUT_BIGFILE ) {
  81.         if ( OUTPUT_JSON ) {
  82.                 if ( ! file_put_contents( OUTPUT_DIR . '/date_names_by_number.json',  json_encode( $translations, JSON_OPTIONS ) ) ) {
  83.                                   trigger_error( OUTPUT_DIR  . '/date_names_by_number.json NOT written or EMPTY.' );
  84.                 }
  85.         }
  86.  
  87.         if ( OUTPUT_SER ) {
  88.                 if ( ! file_put_contents( OUTPUT_DIR . '/date_names_by_number.ser', serialize( $translations ) ) ) {
  89.                                    trigger_error( OUTPUT_DIR  . '/date_names_by_number.ser NOT written or EMPTY.' );
  90.                 }
  91.         }
  92. }
  93.  
  94. if ( OUTPUT_SMALL_FILES ) {
  95.         if ( OUTPUT_JSON ) {
  96.                 if ( ! file_put_contents( OUTPUT_DIR . '/date_names_by_number.locales.json', json_encode( $arLocales, JSON_OPTIONS ) ) ) {
  97.                                   trigger_error( OUTPUT_DIR  . '/date_names_by_number.locales.json NOT written or EMPTY.' );
  98.                 }
  99.         }
  100.         if ( OUTPUT_SER ) {
  101.                 if ( ! file_put_contents( OUTPUT_DIR . '/date_names_by_number.locales.ser', serialize( $arLocales ) ) ) {
  102.                                    trigger_error( OUTPUT_DIR  . '/date_names_by_number.locales.ser NOT written or EMPTY.' );
  103.                 }
  104.         }
  105.         foreach ( $arLocales as $key ) {
  106.                 if ( OUTPUT_JSON ) {
  107.                         if ( ! file_put_contents( OUTPUT_DIR . '/date_names_by_number_' . $key. '.json', json_encode( $translations[$key], JSON_OPTIONS ) ) ) {
  108.                                            trigger_error(  OUTPUT_DIR . '/date_names_by_number_' . $key. '.json NOT written or EMPTY.' );
  109.                         }
  110.                 }
  111.                 if ( OUTPUT_SER ) {
  112.                         if ( ! file_put_contents( OUTPUT_DIR . '/date_names_by_number_' . $key. '.ser',  serialize( $translations[$key] ) ) ) {
  113.                                            trigger_error(  OUTPUT_DIR . '/date_names_by_number_' . $key. '.ser NOT written or EMPTY.' );
  114.                         }
  115.                 }
  116.         }
  117. }
  118. if ( OUTPUT_JSON ) {
  119.   $sys= 'cd ' . OUTPUT_DIR . '; tar -czf _date_names_by_number_json.tar.gz *.json; ls -l _date_names_by_number_json.tar.gz';
  120.   echo `$sys`;
  121. }
  122.  
  123. if ( OUTPUT_SER ) {
  124.   $sys= 'cd ' . OUTPUT_DIR . '; tar -czf _date_names_by_number_ser.tar.gz *.ser; ls -l _date_names_by_number_ser.tar.gz';
  125.   echo `$sys`;
  126. }
  127.  
  128.