[604] | 1 | RRCI18N ; Internationalization Converter
|
---|
| 2 | ;RRCI18N V0.0001;;MTZ/RCR/27MAY2004
|
---|
| 3 | ;Donated by Chris Richardson
|
---|
| 4 | ;Initial database design by Marcus Werner
|
---|
| 5 | ;Copyright 2008 WorldVistA. Licensed under the terms of the GNU
|
---|
| 6 | ;General Public License See attached copy of the License.
|
---|
| 7 | ;
|
---|
| 8 | ;This program is free software; you can redistribute it and/or modify
|
---|
| 9 | ;it under the terms of the GNU General Public License as published by
|
---|
| 10 | ;the Free Software Foundation; either version 2 of the License, or
|
---|
| 11 | ;(at your option) any later version.
|
---|
| 12 | ;
|
---|
| 13 | ;This program is distributed in the hope that it will be useful,
|
---|
| 14 | ;but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
| 15 | ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
---|
| 16 | ;GNU General Public License for more details.
|
---|
| 17 | ;
|
---|
| 18 | ;You should have received a copy of the GNU General Public License along
|
---|
| 19 | ;with this program; if not, write to the Free Software Foundation, Inc.,
|
---|
| 20 | ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
---|
| 21 | V ; Note: Snapshot file .84 before this run so that
|
---|
| 22 | ; it might be restored completely, if needed.
|
---|
| 23 | N CODE,EX,I,J,K,LL,RRCODE,RRCFILE,RRCIEN,RRCNODE,MSK
|
---|
| 24 | S (CODE,RRCODE(1,0))="$$EZBLD^DIALOG("
|
---|
| 25 | S MSK=$$NAMEMSK(),RRCIEN=2150000000
|
---|
| 26 | Q:MSK=""
|
---|
| 27 | ;
|
---|
| 28 | S EX=0
|
---|
| 29 | S J=RRCIEN-1
|
---|
| 30 | F S J=$O(^DI(.84,J)) Q:('J)!(J>2159999999) D
|
---|
| 31 | . S I=$G(^DI(.84,J,0)),S42=$P(I,"^",3)
|
---|
| 32 | . K ^DI(.84,J),^DI(.84,"B",J)
|
---|
| 33 | . ; Dump all generated xrefs
|
---|
| 34 | . K:$L(S42) ^DI(.84,"D",S42,J)
|
---|
| 35 | .QUIT
|
---|
| 36 | D CLEAN
|
---|
| 37 | S TRGDIR="/tmp/I18N/r/"
|
---|
| 38 | ; Clear the decks
|
---|
| 39 | ZSY "mkdir -p "_TRGDIR
|
---|
| 40 | ZSY "rm -f "_TRGDIR_"[A-G]*.m"
|
---|
| 41 | ZSY "rm -f "_TRGDIR_"[G-K]*.m"
|
---|
| 42 | ZSY "rm -f "_TRGDIR_"[K-M]*.m"
|
---|
| 43 | ZSY "rm -f "_TRGDIR_"[M-P]*.m"
|
---|
| 44 | ZSY "rm -f "_TRGDIR_"[P-W]*.m"
|
---|
| 45 | ZSY "rm -f "_TRGDIR_"[W-Z]*.m"
|
---|
| 46 | ZSY "rm -f "_TRGDIR_"*.m"
|
---|
| 47 | ; D REINDX
|
---|
| 48 | F D Q:EX
|
---|
| 49 | . S RRCFILE=$ZSEARCH(MSK)
|
---|
| 50 | . I RRCFILE="" S EX=1 Q
|
---|
| 51 | . ;
|
---|
| 52 | . N CC,LC,X
|
---|
| 53 | . S (CC,LC)=0
|
---|
| 54 | . S RTN=$P(RRCFILE,"/",$L(RRCFILE,"/"))
|
---|
| 55 | . O RRCFILE:READ
|
---|
| 56 | . S RRCNUFL=TRGDIR_RTN
|
---|
| 57 | . S RTN=$P(RTN,".")
|
---|
| 58 | . O RRCNUFL:NEW
|
---|
| 59 | . U RRCFILE
|
---|
| 60 | . F LL=1:1 R X Q:'$L(X) D
|
---|
| 61 | . . N NL
|
---|
| 62 | . . S NL=""
|
---|
| 63 | . . S CC=CC+$L(X),LC=LC+1
|
---|
| 64 | . . S X=$$PULLSTR(X)
|
---|
| 65 | . . U RRCNUFL
|
---|
| 66 | . . W X,!
|
---|
| 67 | . . U RRCFILE
|
---|
| 68 | . .QUIT
|
---|
| 69 | . C RRCNUFL
|
---|
| 70 | . C RRCFILE
|
---|
| 71 | . U 0
|
---|
| 72 | . W RTN_":"_LC_":"_CC_" "
|
---|
| 73 | . W:$X>65 !
|
---|
| 74 | .QUIT
|
---|
| 75 | QUIT
|
---|
| 76 | ; ============
|
---|
| 77 | NAMEMSK() ; Request the File Search Seed, ie. r/*.m
|
---|
| 78 | N M
|
---|
| 79 | R !,"Enter the file mask to include: ",M,!
|
---|
| 80 | QUIT M
|
---|
| 81 | ; ============
|
---|
| 82 | ; Note:
|
---|
| 83 | ; I L?3.A <== Picked up a lot of the DIC(0)=Setups
|
---|
| 84 | ;
|
---|
| 85 | PULLSTR(LN) ; Look for strings
|
---|
| 86 | N J,K,L,LX,L42,RL,NL
|
---|
| 87 | S NL=""
|
---|
| 88 | F J=2:2:$L(LN,"""") D
|
---|
| 89 | . S NL=NL_$P(LN,"""",J-1)_""""
|
---|
| 90 | . S (L,LX)=$P(LN,"""",J)
|
---|
| 91 | . S L42=$E(L,1,42)
|
---|
| 92 | . D:$L(L42)
|
---|
| 93 | . . I '$D(^VWDI(250.84,"B",L42)) D Q ; Check the Exclusions
|
---|
| 94 | . . . I L'?1"["1U.(1" ",1.UNP).1"]",L?.E2.A1." "2.A.E D MOD Q
|
---|
| 95 | . . . ; I L?3.A D MOD Q
|
---|
| 96 | . . . I L?3.(1" "1AP) D MOD Q
|
---|
| 97 | . . . I L?2.(1.2AN1":"1.AP1";") D MOD Q
|
---|
| 98 | . . . I L?1U1.A.1(1" ",1":",1";").E D MOD Q
|
---|
| 99 | . . .QUIT
|
---|
| 100 | . . ;
|
---|
| 101 | . . ; Now if no condition found, add string into NL
|
---|
| 102 | . . S NL=NL_L_""""
|
---|
| 103 | . .QUIT
|
---|
| 104 | .QUIT
|
---|
| 105 | S K=$P(LN,"""",J+1)
|
---|
| 106 | S:K'="" NL=NL_K
|
---|
| 107 | S:NL="" NL=LN
|
---|
| 108 | QUIT NL
|
---|
| 109 | ; ============
|
---|
| 110 | MOD ; Modify the Line of Code
|
---|
| 111 | ; D
|
---|
| 112 | ; . I $L(L)>60 S L=$E(L,1,60),^RRCSTR(L,RRCFILE,LL,J,"STR")=LX Q
|
---|
| 113 | ; . ;
|
---|
| 114 | ; . S ^RRCSTR(L,RRCFILE,LL,J)=""
|
---|
| 115 | ; .QUIT
|
---|
| 116 | ; Get or build a new IEN for this string and return in RL
|
---|
| 117 | S RL=$$RESOLVE(LX)
|
---|
| 118 | S:$E(NL,$L(NL))="""" NL=$E(NL,1,$L(NL)-1)
|
---|
| 119 | S NL=NL_CODE_RL_")"
|
---|
| 120 | QUIT
|
---|
| 121 | ; ============
|
---|
| 122 | RESOLVE(ST) ; Resolve the String as being in DIALOG or add it.
|
---|
| 123 | N J,K,L,S42,S60
|
---|
| 124 | S S60=ST
|
---|
| 125 | S:$L(ST)>59 S60=$E(ST,1,60)
|
---|
| 126 | S S42=$E(S60,1,42)
|
---|
| 127 | S J=$O(^DI(.84,"D",S42,""))
|
---|
| 128 | D:J=""
|
---|
| 129 | . S (RRCIEN,J)=RRCIEN+1
|
---|
| 130 | . S ^DI(.84,J,0)=J_"^1^"_S42
|
---|
| 131 | . S ^DI(.84,J,2,0)="^.844^1^1"
|
---|
| 132 | . S ^DI(.84,J,2,1,0)=ST
|
---|
| 133 | . S ^DI(.84,"B",J,J)=""
|
---|
| 134 | . S ^DI(.84,"D",S42,J)=RTN
|
---|
| 135 | .QUIT
|
---|
| 136 | S D1=$O(^DI(.84,J,5,"B",RTN,""))
|
---|
| 137 | D:'D1
|
---|
| 138 | . S D1=$P($G(^DI(.84,J,5,0)),"^",3)+1
|
---|
| 139 | . S ^DI(.84,J,5,0)="^.841^"_D1_"^"_D1
|
---|
| 140 | .QUIT
|
---|
| 141 | S ^DI(.84,J,5,D1,0)=RTN_"^"_LL
|
---|
| 142 | S ^DI(.84,J,5,"B",RTN,D1)=""
|
---|
| 143 | QUIT J
|
---|
| 144 | ; ============
|
---|
| 145 | CLEAN ; Check the "D" Cross Reference and Clear Inconsistancies
|
---|
| 146 | N I,J,K,L,M
|
---|
| 147 | S I=""
|
---|
| 148 | F S I=$O(^DI(.84,"D",I)) Q:I="" D
|
---|
| 149 | . S J=""
|
---|
| 150 | . F S J=$O(^DI(.84,"D",I,J)) Q:J="" D
|
---|
| 151 | . . S K=$P($G(^DI(.84,J,0)),"^",3)
|
---|
| 152 | . . I I'=K K ^DI(.84,"D",I,J)
|
---|
| 153 | . .QUIT
|
---|
| 154 | .QUIT
|
---|
| 155 | QUIT
|
---|
| 156 | ; ===========
|
---|
| 157 |
|
---|
| 158 |
|
---|