AutoWeb

30. 国際言語化

中国にある工場や取引先に日本国内の適用業務を公開したいと
思いませんか?
最近は取引先に公開するためにAutoWebを導入する事例が
増えています。
国内の取引先だけでなく中国の取引先にも適用業務を
公開することができます。
でも中国語のインターフェースをどうやって作るのか?
ましてや中国語を知らないという開発者がほとんどです。

そんなときに役に立つAutoWebの機能を紹介しましょう。
次の5250画面をご覧ください。

                           部課マスターを登録               システム  Sxxxxxxx
                                                            日付   2020/03/06 
  部課コード      から                                      時刻   13:47:17   
                                                            ユーザー  QTR     
                                                            言語  JPN         
                                                                              
  №   部課コード   部課名      当月労働時間   時間当賃金                     
 0001   11           役員                                                     
 0002   12           総務部                                                   
 0003   21           国内営業                                                 
 0004   22           貿易部                                                   
 0005   23           大型映像                                                 
 0006   30           技術部                                                   
 0007   50           原価係                                                   
 0008   51           調達課                                                   
 0009   52           汎用レン                                                 
 0010   53           サービス                                                 
 0011   54           精密研磨                                                 
 0012   56           組立調整                                                 
 0013   57           ソフト部                                                 
                                                                       続く ..
                                                                              
 F3= 終了                        F10= 更新        F23= 削除        F12= 前画面

この適用業務のデータはそのままで欄見出しだけ
中国語に変える方法をご紹介します。
これからの説明はAutoWebだけでなく一般的な国際言語の
知識となります。

この画面をCALLWEBを使ってAutoWebで表示すると次のようになります。

[解説]

右上に日本語を切替えるためのコンボボックスがあります。
これで中国語を選択すると画面は次のように変わります。

[解説]

言語切り替えのコンボボックスはデモのために用意したもので
実際はこのようなコンボボックスで言語を切替えることは
ないかも知れません。

[部課マスターの登録DSPF: PGM109FM ] ( http://218.44.135.18/QSYS.LIB/QTRSRC.LIB/QDSPSRC.FILE/PGM109FM.MBR )
 ソースはこちらから

0001.00      A*%%TS  SD  20080109  094723  QTR         REL-V5R4M0  5722-WDS        
0002.00      A*-----------------------------------------------*                    
0003.00      A*  SFLENT :  サブ・ファイル入力                                      
0004.00      A*                                                                    
0005.00      A*        部課マスターの登録                                          
0006.00      A*                                                                    
0007.00      A*-----------------------------------------------*                    
0008.00      A                                      DSPSIZ(24 80 *DS3)             
0009.00      A                                      MSGLOC(24)                     
0010.00      A                                      PRINT                          
0011.00      A          R DSPHEAD                                                  
0012.00      A                                      TEXT(' 初期画面 ')             
0013.00      A*%%TS  SD  19930612  135725  QUATTRO     REL-V2R1M0  5738-PW1        
0014.00      A                                      CF03(03 ' 終了 ')              
0015.00      A                                      SETOF(99)                      
0016.00      A                                      BLINK                          
0017.00      A*( この後に表示内容を記述しなさい )                                  
0018.00      A*                                 1 27' 部課マスターの登録 '         
0019.00      A            TITLE_        20A  O  1 27MSGID(MSG0001 QTROBJ/USRMSG)   
0020.00      A                                      TEXT(' 部課マスターの登録 ')   
0021.00      A                                      DSPATR(HI)                     
0022.00      A*                                 2  2' 部課コード '                 
0023.00      A            BUKA_         24G  O  2  2MSGID(MSG0002 QTROBJ/USRMSG)   
0024.00      A                                      TEXT(' 部課コード ')                 
0025.00      A            BKFROM         2A  B  2 15TEXT(' 部課コード ')                 
0026.00      A*                                11 15' 必要な項目を打鍵して実行キーを押 + 
0027.00      A*                                      して下さい。 '                      
0028.00      A            ENTMSG_       46A  O 11 15MSGID(MSG0009 QTROBJ/USRMSG)         
0029.00      A                                      DSPATR(HI)                           
0030.00      A*                                23  2'F3= 終了 '                          
0031.00      A            F3_            9A  O 23  2MSGID(MSG0007 QTROBJ/USRMSG)         
0032.00      A                                      COLOR(BLU)                           
0033.00      A          R SFREC01                   SFL                                  
0034.00      A*%%TS  SD  20080109  094723  QTR         REL-V5R4M0  5722-WDS              
0035.00      A                                      TEXT(' SFLレコード ')             
0036.00      A  20                                                                       
0037.00      AO 99                                  SFLNXTCHG                            
0038.00      A            GYO            4A  B  8  2TEXT(' № ')                         
0039.00      A  03                                  DSPATR(UL)                           
0040.00      A            BKCODE         2A  B  8  9TEXT(' 部課コード ')                 
0041.00      A            BKNAME        10O  B  8 21TEXT(' 部課名 ')                     
0042.00      A            BKHOUR         3Y 0B  8 36TEXT(' 当月労働時間計 ')             
0043.00      A                                      EDTCDE(K)                            
0044.00      A                                      CHECK(RB)                            
0045.00      A                                      DSPATR(CS)                           
0046.00      A            BKRATE         5Y 0B  8 49TEXT(' 時間当賃金 ')                 
0047.00      A                                      EDTCDE(K)                            
0048.00      A                                      CHECK(RB)                          
0049.00      A                                      DSPATR(CS)                         
0050.00      A*                                                                        
0051.00      A          R SFCTL01                   SFLCTL(SFREC01)                    
0052.00      A                                      SFLSIZ(0014)                       
0053.00      A                                      SFLPAG(0013)                       
0054.00      A                                      TEXT(' SFLコントロール ')       
0055.00      A                                      OVERLAY                            
0056.00      A  41                                  SFLDSPCTL                          
0057.00      A  42                                  SFLDSP                             
0058.00      A  43                                  SFLINZ                             
0059.00      A                                      SFLRNA                             
0060.00      A  44                                  SFLCLR                             
0061.00      A  45                                  SFLEND(*MORE)                      
0062.00      A  46                                  SFLDLT                             
0063.00      A                                      ROLLUP(14 ' 次頁 ')                
0064.00      A                                      CF03(03 ' 終了 ')                  
0065.00      A                                      CF10(10 ' 更新 ')                  
0066.00      A                                      CF23(23 ' 削除 ')                  
0067.00      A                                      CF12(12 ' 前画面 ')                
0068.00      A                                      SETOF(99)                          
0069.00      A                                      BLINK                              
0070.00      A  61                                  SFLMSGID(EDT0411 QPDA/QEDTMSG 61)  
0071.00      A  62                                  SFLMSGID(EDT0410 QPDA/QEDTMSG 62)  
0072.00      A  63                                  SFLMSG(' 品種 コード の誤りです。   
0073.00      A                                                                ' 63)   
0074.00      A            PGM           10A  O  1  2TEXT(' プログラム名 ')            
0075.00      A            DSPREC         4S 0H      SFLRCDNBR(CURSOR)                 
0076.00      A                                      TEXT('SFL 表示 レコード № ')        
0077.00      A*                                 1 27' 部課マスターの登録 '            
0078.00      A            TITLE_        20A  O  1 27MSGID(MSG0001 QTROBJ/USRMSG)      
0079.00      A                                      TEXT(' 部課マスターの登録 ')      
0080.00      A                                      DSPATR(HI)                        
0081.00      A*                                 1 60' システム '                      
0082.00      A            SYSTEM_       10A  O  1 60MSGID(MSG0004 QTROBJ/USRMSG)      
0083.00      A                                  1 71SYSNAME                           
0084.00      A*                                 2 60' 日付 '                          
0085.00      A            DATE_          6A  O  2 60MSGID(MSG0011 QTROBJ/USRMSG)      
0086.00      A                                  2 68DATE(*YY) EDTCDE(W)               
0087.00      A*                                 3  2' 部課コード '                    
0088.00      A            BUKA_         12A  O  3  2MSGID(MSG0002 QTROBJ/USRMSG)      
0089.00      A            BKFROM         2A  O  3 15TEXT(' 部課コード ')              
0090.00      A*                                 3 18' から '                          
0091.00      A            KARA_          6A  O  3 18MSGID(MSG0003 QTROBJ/USRMSG)      
0092.00      A*                                 3 60' 時刻 '                          
0093.00      A            TIME_          6A  O  3 60MSGID(MSG0012 QTROBJ/USRMSG)      
0094.00      A                                  3 68TIME  EDTWRD('  :  :  ')          
0095.00      A*                                 4 60' ユーザー '                      
0096.00      A            USER_         10A  O  4 60MSGID(MSG0005 QTROBJ/USRMSG)         
0097.00      A                                  4 71USER                                 
0098.00      A*                                 5 60' 言語 '                             
0099.00      A            LANG_          6A  O  5 60MSGID(MSG0013 QTROBJ/USRMSG)         
0100.00      A            LANG           3A  B  5 67                                     
0101.00      A                                      VALUES('JPN' 'CHN')                  
0102.00      A                                      TEXT('" 日本語 " " 中国語 " *SBM')   
0103.00      A*( DSPF ソース・ボタン )                                                   
0104.00      A                                  5  2HTML('')             
0110.00      A*( RPG ソース・ボタン )                                                    
0111.00      A                                  5 18HTML('')              
0117.00      A*( 国旗 )                                                                  
0118.00      A                                  6 67HTML(&FLGIMG)                        
0119.00      A            FLGIMG       128A  P                                           
0120.00      A*( 明細行の桁見出し )                                               
0121.00      A                                  7  2' № '                        
0122.00      A                                      DSPATR(HI)                    
0123.00      A*                                 7  7' 部課コード '                
0124.00      A            BUKA__        12A  O  7  7MSGID(MSG0002 QTROBJ/USRMSG)  
0125.00      A                                      DSPATR(HI)                    
0126.00      A*                                 7 20' 部課名 '                    
0127.00      A            BUKANM_       10A  O  7 20MSGID(MSG0014 QTROBJ/USRMSG)  
0128.00      A                                      DSPATR(HI)                    
0129.00      A*                                 7 32' 当月労働時間 '              
0130.00      A            WRKDAY_       14A  O  7 32MSGID(MSG0015 QTROBJ/USRMSG)  
0131.00      A                                      DSPATR(HI)                    
0132.00      A*                                 7 47' 時間当賃金 '                
0133.00      A            WRKMON_       12A  O  7 47MSGID(MSG0016 QTROBJ/USRMSG)  
0134.00      A                                      DSPATR(HI)                    
0135.00      A*( 見出しの項目 )                                                   
0136.00      A          R DSPEND01                                                
0137.00      A                                      TEXT(' 機能キーの表示 ')      
0138.00      A*----------------------------------------------------*              
0139.00      A                                      OVERLAY                       
0140.00      A                                      CF03(03 ' 終了 ')             
0141.00      A*                                23  2'F3= 終了 '                   
0142.00      A            F3_            9A  O 23  2MSGID(MSG0007 QTROBJ/USRMSG)  
0143.00      A                                      COLOR(BLU)                    
0144.00      A*                                23 34'F10= 更新 '                         
0145.00      A            F10_          12A  O 23 34MSGID(MSG0010 QTROBJ/USRMSG)         
0146.00      A                                      COLOR(BLU)                           
0147.00      A*                                23 51'F23= 削除 '                         
0148.00      A            F23_          12A  O 23 51MSGID(MSG0008 QTROBJ/USRMSG)         
0149.00      A                                      COLOR(BLU)                           
0150.00      A*                                23 68'F12= 前画面 '                       
0151.00      A            F12_          12A  O 23 68MSGID(MSG0006 QTROBJ/USRMSG)         
0152.00      A                                      COLOR(BLU)                           
0153.00      A          R ENDOPT                                                         
0154.00      A                                      TEXT(' 終了画面 ')                   
0155.00      A                                      CF03(03 ' 終了 ')                    
0156.00      A                                  1 34' 終了 '                             
0157.00      A                                      DSPATR(HI)                           
0158.00      A                                  3  2' 処理されたレコード数 '             
0159.00      A                                  5 10' 追加  . . . . . :'                 
0160.00      A            ADDREC         5Y 0O  5 35EDTCDE(4)                            
0161.00      A                                  6 10' 変更  . . . . . :'                 
0162.00      A            CHGREC         5Y 0O  6 35EDTCDE(4)                            
0163.00      A                                  7 10' 削除  . . . . . :'                 
0164.00      A            DLTREC         5Y 0O  7 35EDTCDE(4)                            
0165.00      A                                 11  2' 選択項目を打鍵して,実行キーを押 + 
0166.00      A                                       してください。 '                    
0167.00      A                                      COLOR(BLU)                           
0168.00      A                                 13  5' データ入力の終了  . . . . 
0169.00      A            ANS            1A  B 13 39VALUES('Y' 'N')             
0170.00      A                                 13 53'Y=YES, N=NO'               
0171.00      A*                                23  2'F3= 終了 '                 
0172.00      A            F3_            9A  O 23  2MSGID(MSG0007 QTROBJ/USRMSG)
0173.00      A                                      COLOR(BLU)                  
0174.00      A*                                23 15'F12= 前画面 '              
0175.00      A            F12_          12A  O 23 15MSGID(MSG0006 QTROBJ/USRMSG)
0176.00      A                                      COLOR(BLU)      


             

[解説]

このDSPFで日本語/中国語を切替えているのはメッセージ・ファイル(*MSGF)です。
次の例をご覧ください。

0018.00      A*                                 1 27' 部課マスターの登録 '         
0019.00      A            TITLE_        20A  O  1 27MSGID(MSG0001 QTROBJ/USRMSG)   
0020.00      A                                      TEXT(' 部課マスターの登録 ')

ライブラリーQTROBJのメッセージ・ファイル USRMSG には
メッセージID MSG001 は


 メッセージ ID  . . . . . . . :   MSG0001                
 メッセージ・ファイル . . . . :   USRMSG                 
   ライブラリー . . . . . . . :     QTROBJ               
 メッセージ・テキスト . . . . :    部課マスターを登録    

として日本語表記で登録されています。
一方、中国語はライブラリーCHINALIBのメッセージ・ファイル USRMSG には
メッセージID MSG001 は

メッセージ ID  . . . . . . . :   MSG0001            
メッセージ・ファイル . . . . :   USRMSG             
  ライブラリー . . . . . . . :     CHINALIB         
メッセージ・テキスト . . . . :    ・・・・・衡覇塑  

として中国語で登録されています。(これは日本語環境のため正しい中国語が
表示されません)

一方RPGプログラムでは

  :
0126.00  *   ( 言語選択 )                      
0127.00 C     LANG          IFNE      CURLNG   
0128.00 C     LANG          IFEQ      'CHN'    
0129.00  *     中国語をセット                  
0130.00 C                   EXSR      CHINA_   
0131.00 C                   ELSE               
0132.00  *     日本語に戻す                    
0133.00 C                   EXSR      JAPAN_   
0134.00 C                   ENDIF              
 :
0232.00 C******************************************************                 
0233.00 C     CHINA_        BEGSR                                               
0234.00 C******************************************************                 
0235.00  *( 中国語 )                                                            
0236.00  /FREE                                                                  
0237.00    SYSTEM('OVRMSGF MSGF(USRMSG) TOMSGF(CHINALIB/USRMSG) SECURE(*YES)'); 
0238.00    FLGIMG = BEGIMG + CHINA + ENDIMG;                                    
0239.00  /END-FREE                                                              
0240.00 C                   ENDSR                                               
0241.00 C******************************************************                 
0242.00 C     JAPAN_        BEGSR                                               
0243.00 C******************************************************                 
0244.00  *( 日本語 )                                                            
0245.00  /FREE                                                                  
0246.00    SYSTEM('DLTOVR FILE(USRMSG) LVL(*)');                                
0247.00    FLGIMG = BEGIMG + JAPAN + ENDIMG;                                    
0248.00  /END-FREE                                                              
0249.00 C                   ENDSR                                               

のようにして OVRMSGF でどちらのメッセージ・ファイルを読むのかを選択しています。

さて中国語はどのようにして登録したのでしょうか?
それは簡単です。
AUTOWEBの製品メニューの中の「63. 国際言語の登録」(WRKLANG)を選択すると
次のようにAutoWebが起動されて表示されます。

[解説]

最初にF11=切替を押すと上のように左側に日本語を登録することができます。
次に例えば「部課マスターを登録」をコピーしてから「Google翻訳」ボタンを押して
次のように「部課マスターを登録」を貼り付けて中国語に翻訳します。

翻訳した中国語をコピーしてF11キーを押して中国語の欄に貼り付けます。

このようにすればたとえ中国語は知らなくてもMSGFに中国語を登録すれば
単語毎の翻訳であれば中国語の表記とすることができます。
この国際言語化はAutoWebの標準の機能です。

国際言語化の大事な知識

最後に国際言語化のために大切な情報をご紹介しましょう。
上記の説明で2次言語に中国語の導入が必要である、とかのお話は出てきませんでしたが
これは必要ありません
IBM i 自体に2次言語としての中国語や日本語が導入されていなくても
クライアントつまり5250エミュレータを日本語や中国語とすれば
正しい言語は表示することができるのです。
2次言語が必要であるのは i5/OSのメニューやメッセージのためだけなのです。
中国語を扱いたいと言っても中国語をIBM iに導入する必要はありません。
弊社のお客様でも英語のみの環境のIBM iで弊社の日本語製品を導入して
支障なくお使いになっているユーザー様もおられます。
2次言語が必要であるというのは都市伝説程度に考えてよいのかも
知れません。
ご参考までに。