
; $VER: Install-Locale 45.4 (9.2.2001)

; #create-lang-dir = Create language directory in tackon (#destination #whichdir)

(procedure P_CopyDirByLang #loc_languages #NumLanguages #whichdir #source #destination #create-lang-dir
(
    (makedir (tackon #destination #whichdir))

    (set #i 0)
    (while (< #i #NumLanguages)
      (
        (if (<> 0 (IN #loc_languages #i))
          (
            (set #cLanguage (select #i "bosanski" "català" "czech" "dansk" "deutsch" "español" "français" "hrvatski" "italiano" "nederlands" "norsk" "português" "português-brasil" "russian" "slovak" "slovensko" "srpski" "suomi" "svenska" "türkçe"))
            (if (exists (tackon (tackon #source #whichdir) #cLanguage))
              (if (= #create-lang-dir true)
                (copyfiles
                    (source (tackon (tackon #source #whichdir) #cLanguage))
                  (dest (tackon (tackon #destination #whichdir) #cLanguage) )
                  (all) (optional nofail force)
                )
                (copyfiles
                    (source (tackon (tackon #source #whichdir) #cLanguage))
                    (dest (tackon #destination #whichdir))
                    (all) (optional nofail force)
                )
              )
            )
          )
        )
      )
      (set #i (+ #i 1))
    )
  )
)

(procedure P_DoLocale #source #destination
(
        (run "c/GetLocale")

        (set #loc_language  (getenv "language") )
        (set #country           (getenv "country")  )
        (set #keymap            (getenv "keymap")   )
        (set @default-dest  #destination)

        ; "bosanski" "català" "czech" "dansk" "deutsch" "español" "français" "hrvatski" "italiano"
        ; "nederlands" "norsk" "português" "português-brasil" "russian" "slovak" "slovensko"
        ; "srpski" "suomi" "svenska" "türkçe"

        (set i 0)
        (set #loc_languages 0)
        (while (<> #loc_language "")
          (
            (set #NumLanguages 0) (set l 0)

            (if (= #loc_language "türkçe") (set l (+ l 1)) )
            (set l (shiftleft l 1))
            (set #NumLanguages (+ #NumLanguages 1))

            (if (= #loc_language "svenska") (set l (+ l 1)) )
            (set l (shiftleft l 1))
            (set #NumLanguages (+ #NumLanguages 1))

            (if (= #loc_language "suomi") (set l (+ l 1)) )
            (set l (shiftleft l 1))
            (set #NumLanguages (+ #NumLanguages 1))

            (if (= #loc_language "srpski") (set l (+ l 1)) )
            (set l (shiftleft l 1))
            (set #NumLanguages (+ #NumLanguages 1))

            (if (= #loc_language "slovensko") (set l (+ l 1)) )
            (set l (shiftleft l 1))
            (set #NumLanguages (+ #NumLanguages 1))

            (if (= #loc_language "slovak") (set l (+ l 1)) )
            (set l (shiftleft l 1))
            (set #NumLanguages (+ #NumLanguages 1))

            (if (= #loc_language "russian") (set l (+ l 1)) )
            (set l (shiftleft l 1))
            (set #NumLanguages (+ #NumLanguages 1))

            (if (= #loc_language "português-brasil") (set l (+ l 1)) )
            (set l (shiftleft l 1))
            (set #NumLanguages (+ #NumLanguages 1))

            (if (= #loc_language "português") (set l (+ l 1)) )
            (set l (shiftleft l 1))
            (set #NumLanguages (+ #NumLanguages 1))

            (if (= #loc_language "norsk") (set l (+ l 1)) )
            (set l (shiftleft l 1))
            (set #NumLanguages (+ #NumLanguages 1))

            (if (= #loc_language "nederlands") (set l (+ l 1)) )
            (set l (shiftleft l 1))
            (set #NumLanguages (+ #NumLanguages 1))

            (if (= #loc_language "italiano") (set l (+ l 1)) )
            (set l (shiftleft l 1))
            (set #NumLanguages (+ #NumLanguages 1))

            (if (= #loc_language "hrvatski") (set l (+ l 1)) )
            (set l (shiftleft l 1))
            (set #NumLanguages (+ #NumLanguages 1))

            (if (= #loc_language "français") (set l (+ l 1)) )
            (set l (shiftleft l 1))
            (set #NumLanguages (+ #NumLanguages 1))

            (if (= #loc_language "español") (set l (+ l 1)) )
            (set l (shiftleft l 1))
            (set #NumLanguages (+ #NumLanguages 1))

            (if (= #loc_language "deutsch") (set l (+ l 1)) )
            (set l (shiftleft l 1))
            (set #NumLanguages (+ #NumLanguages 1))

            (if (= #loc_language "dansk") (set l (+ l 1)) )
            (set l (shiftleft l 1))
            (set #NumLanguages (+ #NumLanguages 1))

            (if (= #loc_language "czech") (set l (+ l 1)) )
            (set l (shiftleft l 1))
            (set #NumLanguages (+ #NumLanguages 1))

            (if (= #loc_language "català") (set l (+ l 1)) )
            (set l (shiftleft l 1))
            (set #NumLanguages (+ #NumLanguages 1))

            (if (= #loc_language "bosanski") (set l (+ l 1)) )
            (set #NumLanguages (+ #NumLanguages 1))

            (set #loc_language (getenv ("language.%ld" i)) )
            (set #loc_languages (bitor #loc_languages l) )

            (set i (+ i 1))
          )
        )

        ;-ask options------------------------------------------------------------------------

        (set #loc_languages
          (askoptions
            (help #which-language-help) (prompt #which-language) (default #loc_languages)
            (choices "Bosanski" "Català" "Czech" "Dansk" "Deutsch" "Español" "Français" "Hrvatski" "Italiano" "Nederlands" "Norsk" "Português" "Português (Brasil)" "Ðóññêèé (Russian)" "Slovak" "Slovensko" "Srpksi" "Suomi" "Svenska" "Türkçe")
          )
        )

        ;-install requested files------------------------------------------------------------

        (makedir (tackon #destination "Locale"))

        ; Fähnchen für .country/.keymap
        (copyfiles
          (source (tackon #source "Locale/Flags"))
          (dest (tackon #destination "Locale/Flags") )
          (all) (optional nofail force)
        )

        ; Provider
        (copyfiles
          (source (tackon #source "Locale/Providers"))
          (dest (tackon #destination "Locale/Providers") )
          (all) (optional nofail force)
        )

        ; Languages
        (copyfiles
          (source (tackon #source "Locale/Languages"))
          (dest (tackon #destination "Locale/Languages") )
          (all) (optional nofail force)
        )

        (makedir (tackon #destination "Devs"))

        ; Tastaturbelegungen
        (copyfiles
          (source (tackon #source "Devs/Keymaps"))
          (dest (tackon #destination "Devs/Keymaps") )
          (all) (optional nofail force)
        )

        ; CrossDOS
        (copyfiles
          (source (tackon #source "L"))
          (dest (tackon #destination "L") )
          (all) (optional nofail force)
        )

        ;Kataloge, Sprachen, Hilfen

        (P_CopyDirByLang #loc_languages #NumLanguages "Locale/Catalogs" #source #destination true)

        (P_CopyDirByLang #loc_languages #NumLanguages "Locale/Help" #source #destination true)

        (P_CopyDirByLang #loc_languages #NumLanguages "Fonts" #source #destination false)

        (P_CopyDirByLang #loc_languages #NumLanguages "Libs" #source #destination false)

        ; Zeichensätze, libs, Drucker
        (set #i 0)
        (while (< #i #NumLanguages)
          (
            (set #cLanguage (select #i "bosanski" "català" "czech" "dansk" "deutsch" "español" "français" "hrvatski" "italiano" "nederlands" "norsk" "português" "português-brasil" "russian" "slovak" "slovensko" "srpski" "suomi" "svenska" "türkçe"))
            (if (<> 0 (in #loc_languages #i))
              (
                (if (or (= #cLanguage "czech") (= #cLanguage "slovak") )
                  (copyfiles
                    (source (tackon #source "Devs/Printers"))
                    (dest (tackon #destination "Devs/Printers"))
                    (all) (optional nofail force)
                  )
                )
              )
            )
            (set #i (+ #i 1))
          )
        )
    )
)

(set #wbversion (/ (getversion "libs:version.library") 65536))

(set #loc_language (getenv "Language"))

; === English strings

(set #which-disk-lang
(cat "In which partition should the Release 3.9 language files be installed?"
))

(set #which-disk-lang-help
(cat "\nThis section lets you choose on which hard drive partition the "
     "release 3.9 language files should be installed. These should go "
     "in the same location as the release 3.9 Workbench files.\n\n"
     @askdir-help
))

(set #which-language
(cat "\nWhich languages should be installed?"
))

(set #which-language-help
(cat "\nThe Amiga can be operated in many different "
     "languages. Several files must be copied to your "
     "hard drive for each language supported.\n\n"
     "To reduce the amount of space consumed by the "
     "language files, you can select only the "
     "files of specific languages to be copied.\n\n"
     "Check the boxes of the languages you wish "
     "to have available on your system.\n\n"
     @askoptions-help
))

(set #bad-os "These files are intended for use with OS 3.9 only.")

(set #none "None")

; === German strings

(if (= #loc_language "deutsch")
    (
        (set #which-disk-lang
        (cat "Auf welcher Festplattenpartition sollen die Sprachendateien für "
             "Version 3.9 installiert werden?"
        ))

        (set #which-disk-lang-help
        (cat "\nHier können Sie wählen, auf welcher Festplattenpartition die "
             "Sprachendateien für Version 3.9 installiert werden sollen. Das "
             "sollte dieselbe Partition wie die mit den Workbench-Dateien "
             "der Version 3.9 sein.\n\n"
             @askdir-help
        ))


        (set #which-language
        (cat "\nWelche Sprachen sollen installiert werden?"
        ))

        (set #which-language-help
        (cat "\nDer Amiga kann in vielen verschiedenen Sprachen betrieben werden. "
             "Für jede verwendete Sprache müssen mehrere Dateien auf Ihre "
             "Festplatte kopiert werden.\n\n"
             "Um den Platz in Grenzen zu halten, den die Sprachentreiberdateien "
             "einnehmen, können Sie wählen, nur die Treiber für bestimmte "
             "Sprachen zu installieren.\n\n"
             "Klicken Sie einfach die Felder derjenigen Sprachen an, die Sie in "
             "Ihrem System verfügbar haben wollen, so daß diese Sprachen mit "
             "einem Häkchen markiert sind.\n\n"
             @askoptions-help
        ))

        (set #bad-os "Diese Dateien sind nur für AmigaOS 3.9 bestimmt!")

        (set #none "Keine")

    )
)


;-go------------------------------------------------------------------------------------
(if (<> #wbversion 45)
    (exit #bad-os)

  (P_DoLocale "Locale" (askdir
                                            (help #which-disk-lang-help)
                        (prompt #which-disk-lang)
                        (default "SYS:")
                       )
  )
)

