Когда я запускаю ваш скрипт, я получаю правильный результат. Но одна вещь, которую вы можете захотеть сделать, это явно привести ваш результат к тексту. Самый простой способ сделать это будет в конце:
return upperCaseString as text
Это может или не может сделать это для вас, но вы избежите большого разочарования, если будете явно приводить данные, когда есть вероятность двусмысленности.
Другой (более быстрый) способ - использовать команду Unix tr ( translate ) через do shell script
:
set upperCaseString to ¬
(do shell script ("echo " & input & " | tr a-z A-Z;"))
Этого достаточно для английского языка, но вы также можете добавить диакритический перевод, например:
set upperCaseString to ¬
(do shell script ("echo " & input & " | tr a-zäáà A-ZÄÁÀ;"))
tr переведет что угодно в что угодно , так что вы можете добавить любые символы, с которыми вы можете столкнуться, и то, что вы хотите, чтобы они перевели. Приходит на ум переводчик «говорящий по-литовски».