if I were to add something to it would be a "dictionary" of sorts, something like the context prompt used by DSLR so some specific terms are literally translated, even if this may be prone to error in some cases.
The differentiating factor of SLR compared to just using Sugoi is actually a dictionary with several thousand entries of pre-defined translations. It's just not particularly convenient to expand. You would add the thing you don't want sent to Sugoi to the TranslationEngineWrapper.js in the www>addons>SLRtrans>lib>TranslationEngine folder.
As a regex after the line that says "'//Specific pre defined translations',".
For example:
JavaScript:
/^購入する$/gi.toString() + ',',
If it is something that should only be replaced if it's alone in a cell.
Or:
JavaScript:
/[ ]*(?<=[^一-龠ぁ-ゔァ-ヴー々〆〤ヶレディファイッ]|^)購入する(?=[^一-龠ぁ-ゔァ-ヴー々〆〤ヶレディファイッ]|$)[ ❤♥♡…!?。、・♪]*/g.toString() + ',',
If it's an isolated text inside a cell with other stuff.
Then you would add another regex with the actual translation to the transredbatch.js in the www>addons>SLRbatch folder.
After the "//Predefined Translations" line.
Example:
JavaScript:
shistuff = shistuff.replaceAll(/(?<=[^一-龠ぁ-ゔァ-ヴー々〆〤ヶレディファイッ]|^)(?<!\\G\[|\\fs\[|\\RB\[|\\rb\[|\\p\[|\\l\[|\\r\[|\\F\[|\\FF\[|\\FFF\[|\\FFFF\[|\\FFFFF\[|\\FFFFFF\[|\\FFFFFFF\[|\\FFFFFFFF\[|\\FFFFFFFFF\[|\\FFFFFFFFFF\[|\\A\[|\\AA\[|\\AAA\[|\\AAAA\[|\\AAAAA\[|\\AAAAAA\[|\\AAAAAAA\[|\\AAAAAAAA\[|\\AAAAAAAAA\[|\\AAAAAAAAAA\[|\\p\[|\\FH\[|\\SVVN\[|\\se\[|\\SE\[|\\_SE\[|\\M\[|\\i\[|\\v\[|\\oc\[|\\VS\[|\\NA\[|\\vs\[|\\na\[|\\PICN\[|\\PICE\[|\\picn\[|\\pice\[)購入する(?=[^一-龠ぁ-ゔァ-ヴー々〆〤ヶレディファイッ]|$)/g, "Buy");
You can just copy that and replace the "購入する" with the original text and "Buy" with the replacement. The rest of that is just failsafe stuff to make sure it doesn't replace the wrong thing.
I thought about remaking the system to be more convenient to expand, but with sugoiV4 being very outdated at this point I kinda gave up on expanding it. If LLM progress continues at this pace, my dictionary is likely fully obsolete soon.
Does the options I set at SLRTranslator overwrite those in LM Studio server?
Changing the options in DSLR means it will send those specific parameters on each request, overriding defaults set by LM Studio. You do not need to touch the LM studio settings, unless it's about a setting not present in the DSLR options menu.
4- The save translation progressper batch should, in my opinion, be enabled by default, because for instance I lost like 4 hours without knowing aborting would delete all progress and not keep it for resuming later.
That makes it quite a bit slower though, so someone with high end hardware might be annoyed by it.
And when using not properly tested LLM the user might not always want to keep the translations.
If you are worried about loosing progress a better way would be to keep persistent cache enabled. (Which is on by default on SLR)
Even when it crashes you can just start the batch translation again and it will continue where it left off after filling in the translations from cache.
5- The search feature is a bit barebones in my experience. I would like to search at specific columns so the original text is unnaffected by any replace change or discarded from the search (useful when trying to reduce line breaks from the translation column).
I would use regex or custom scripts for that, and you can turn on regexp in the search/replace menu. I'm honestly not sure how I could make that more user friendly. GUI stuff is not exactly my strong suit.
6- Maybe it's not something solvable because it may be UI things, but after searching something that is found at a cell near the end of a file, then clicking any other cell to see the area found would move the UI downwards past the last row of the file. I don't really know why it happens, but it's a bit annoying.
Yeah I noticed that, too. The problem is I didn't make the UI and I have no idea what could be causing that. it's either a node.js issue in general or some dreamsavior fuckup.
7- Copying a cell and pasting it elsewhere does not copy the cell, but splits each line within the copied cell to multiple cells where it is pasted. If this is a feature, it is prone to error in my opinion.
It does copy the cell if you click into the field at the bottom first. It only tries to distribute stuff if you just have a cell selected in the grid.
8- The text wrapper feature doesn't get explained with enough detail or I'm stupid (most probably). I would guess that if I set it to 60/56, it means that the text will wrap anytime the text goes over the 60 character in non-avatar windows and 56 in avatar ones. However, this doesn't seem to be the case for me, because after testing many values 32/30 seem to be the adequate for what I was searching. I tested the options mentioned by the window and none seemed to work well in my case.
It's not "characters" it's "monospace characters". The issue with just using characters is that for example a "i" is a lot shorter than a "O".
As a result just counting characters means 10 can be
iiiiiiiiii
and
OOOOOOOOOO
Even though the latter takes much more space.
Because of that I'm instead counting in fixed width characters.
This special space for example " " is exactly 1 monospace wide.
They will always be that width regardless which font you use.
As for the shortcuts, they are specifically for using Stint ultra condensed font, or a font size of 16, because those are my preferred options for trying to make things fit in option menus. Since English takes so much more space than Japanese trying to fit English in standard font only very rarely works. (In an automated fashion)
9- Also with the text wrapper feature, for some reason it usually cuts early even if the limit wouldn't be reached whenever there's a comma in the sentence. For instance, "As a newcomer, I'm confused about how to act..." would be cut as "As a newcomer,\nI'm confused about how to act...".
I made it an elaborate script trying to find "natural" break points so it doesn't look stupid in-game. If you just want "dumb" wrapping you can actually do that, too, by right-clicking an object and choosing wrap there. That one also uses the "normal" character count, since it's the original wrapping system of dreamsavior.