#ProperKorean - Fixes Korean Translation

23 messages · Page 1 of 1 (latest)

opal bear
#

Fixes (almost) every mistranslations and adds some minor improvements that makes Korean gameplay slightly better 🇰🇷 Requires Steamodded Modloader.

  • Fixed almost every mistranslations I could spot (Jokers, Vouchers, Tags, UIs, Jimbo's quotes, etc.)
  • Fixed invalid formatting and ability errors (e.g., The Tribe's +2 Multx2 Mult)
  • Fixed spacing to be grammatically correct, removed unnecessary and weird spacings
  • Unified expressions, terms, and tones to be consistent throughout the game
  • Changed word order of some texts to make them feel more fluent (보기 덱덱 보기, 선택 11장 선택)
  • Added missing translation
  • Combined existing Korean font with base English font to keep the unique and nice feel of it
  • Implemented all text changes from 1.0.0k

I found that there are #1207803392978853898 and ongoing sheets for Korean translation after had done some work on this 😅 Some of suggestions from the sheets are implemented, but quite a fair amount of improvements are done by me.

This is more like a proof of concept and there's definitely room for improvement, but these are rules I tried to follow:

  • Try to translate things in Korean and avoid transliterations (골드 - 황금, 스톤 - 석재, 레드 - 붉은, etc.) unless they are Poker/Card/Casino terms (ante, blind, Shoot the Moon, etc.) or better well-known in English (Cloud 9, Monolith, etc.)
  • Slightly reword the text or make more descriptive if doing so makes it easier to understand (Erosion, DNA, etc.)
  • Try to use consistent sentence endings and tones

You can check a complete changelist here: https://www.diffchecker.com/5cFdUytF/

nova reef
#

after applying the patch and trying out the gameplay,
i consider this translation to be perfect
wordplay translations like 'Even Steven(짝수 짝궁, 홀수 홀씨)' have received positive reactions in the korean community
thank you for the patch

opal bear
nova reef
opal bear
#

Another update is here balatrojoker

  • Fixed a bug where displayed name of poker hand was not localized when Orbital Tag was used
  • Improved Invisible Joker's description about Negative to be more clear
  • Fixed word order of Blinds' description on collection to be more natural
  • Changed Voucher Reedemed(교환됨) and all related texts to Used(사용됨) to avoid misunderstanding
  • Removed all case particle notations(을(를)) and added codes that automatically put appropriate case particle
  • Translated Credit 🏅

https://drive.google.com/file/d/1kam5o5oQWcYGaz6LvVw1FGScvp_5ORRX/view?usp=sharing

rain vigil
opal bear
# rain vigil Hey, I'd like to ask. Which string in the code you found that was missing a loca...

Hi! Orbital Tag bug is caused by this code:

function Tag:apply_to_run(_context)
...
if self.name == 'Orbital Tag' then
    update_hand_text({sound = 'button', volume = 0.7, pitch = 0.8, delay = 0.3}, {
        handname= self.ability.orbital_hand, -- Here
        chips = G.GAME.hands[self.ability.orbital_hand].chips,
        mult = G.GAME.hands[self.ability.orbital_hand].mult,
        level= G.GAME.hands[self.ability.orbital_hand].level})
...

handname should be wrapped with localize(), so modifying it to localize(self.ability.orbital_hand, "poker_hands") will fix the problem

rain vigil
opal bear
# rain vigil Thanks, it worked. Wonder if the Cruelty_challenge rule could have similar solut...

I just tried modifying the challenge like this and crashed

custom = {
    {id = 'no_reward_specific', value = localize('k_small')},
    {id = 'no_reward_specific', value = 'Big'},
},

The way I'm doing in this mod is replacing them at the very end of Game:set_language() and I think you could do the same

for _, v in pairs(G.CHALLENGES) do
    if v.id == "c_cruelty_1" then
        v.rules.custom[1].value = is_korean and "스몰" or "Small"
        v.rules.custom[2].value = is_korean and "빅" or "Big"

        break
    end
end
rain vigil
rain vigil
opal bear
#

Then you can inject multiple lines, here's how I'm doing it in my another mod

[[patches]]
[patches.pattern]
target = "functions/button_callbacks.lua"
pattern = '''G.consumeables:emplace(c1)'''
position = "after"
payload = '''
elseif c1.ability.set == "Tag" then
    add_tag(Tag(c1.ability.tag))
    c1:remove()

    play_sound("generic1", 0.9 + math.random() * 0.1, 0.8)
    play_sound("holo1", 1.2 + math.random() * 0.1, 0.4)

    for _, v in ipairs(G.GAME.tags) do
        v:apply_to_run({type = "voucher_add"})
        v:apply_to_run({type = "immediate"})
    end
'''
match_indent = true
overwrite = false
opal bear
twin silo
#

Hi @opal bear, just in case you are interested and you didn't saw it: it's also possible to translate/modify the cards too (Jokers, Tarot cards, Planets,...).
There is a script to generate localized sprites sheets: https://github.com/Signez/balatro-sprites-i18n
(more info here: #1216942406310826075 message)

GitHub

Internationalization toolchain to translate Balatro's sprites - Signez/balatro-sprites-i18n

Discord

Discord is the easiest way to communicate over voice, video, and text. Chat, hang out, and stay close with your friends and communities.

opal bear
#

Update

  • Now supports 1.0.1f

  • 1.0.1f에 맞추어 업데이트됐습니다.

  • 일부 조커의 능력이 발동되는 시점을 더욱 명확하게 알 수 있도록 설명을 수정했습니다(남작, 고대 조커 등).

  • 일부 설명을 더욱 간결하게 개선했습니다.

다운로드 및 설치 방법: https://dvrp-balatro-mods.pages.dev/properkorean

DVRP's Balatro Mods

엉망진창인 한국어 번역을 수정하고 번역되지 않은 부분, 읽기에 부자연스러운 부분을 올바르게 고칩니다.

old nebula
#

is this mod still available? i'm getting a 500 server error when i click the link above

earnest marlin
#

Shit, did dvrp die for real this time?

old nebula
#

i hope not 😢 @opal bear

opal bear
old nebula
#

thank you so much!