Rensa en ts-fil
Rensa en ts-fil
Någon som har en bra metod att rensa en .ts-fil från gamla översättningar? Jag vill alltså ta bort allt som finns mellan taggarna <translation> och </translation>.
Edit:
En textredigerare med "Sök & ersätt" som stöder jokertecken hade varit bra, om någon känner till en sådan.
I Notepad++ (Windows) kunde man använda RegEx tillsammans med "Sök & ersätt". Mina RegEx-kunskaper är dock minimala.
Edit:
En textredigerare med "Sök & ersätt" som stöder jokertecken hade varit bra, om någon känner till en sådan.
I Notepad++ (Windows) kunde man använda RegEx tillsammans med "Sök & ersätt". Mina RegEx-kunskaper är dock minimala.
Senast redigerad av 2 eson57, redigerad totalt 8 gång.
Alltid på kanelen!
Re: Rensa en ts-fil
Har kommit en bit på väg. Det går att lösa med hjälp av RegEx i t.ex. jEdit, som en av många textredigerare.
I "Search and replace" klistrar jag in, som söksträng...
Som ersättningssträng kör jag...
Detta fixar de flesta strängar, men som den noob jag är på RegEx, lyckas jag inte få till det med några tecken som också behöver vara med i söksträngen. Som t.ex. [ ] och /. De strängar som innehåller dessa tecken, hittas helt enkelt inte.
Någon som är haj på RegEx och kan ge mig ett handtag?
I "Search and replace" klistrar jag in, som söksträng...
Kod: Markera allt
<translation>[A-Za-zÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ \t\r\n0-9-,.-?!:;%&=()]*</translation>
Kod: Markera allt
<translation type="unfinished"></translation>
Någon som är haj på RegEx och kan ge mig ett handtag?
Alltid på kanelen!
Re: Rensa en ts-fil
Löst!
Jag kom på det till slut. Vissa tecken måste argumenteras ut för att söksträngen skall fungera. I det här fallet var det hakparentesen som spökade.
"Rätt" söksträng skall se ut som följer...
Tilläggas kan, att det i framtiden förmodligen kan dyka upp fler tecken som behöver vara med i denna sträng, men efter att ha rensat en ts-fil med 670 tyska översättningssträngar, är jag för tillfället nöjd.
Jag kom på det till slut. Vissa tecken måste argumenteras ut för att söksträngen skall fungera. I det här fallet var det hakparentesen som spökade.
"Rätt" söksträng skall se ut som följer...
Kod: Markera allt
<translation>[A-Za-zÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ \t\r\n0-9-,.-?!:;%&\/=+-'{}()\[\]$£@*_~]*</translation>
Senast redigerad av 1 eson57, redigerad totalt 12 gånger.
Alltid på kanelen!
- Gunnar Hjalmarsson
- Inlägg: 3030
- Blev medlem: 08 aug 2010, 13:49
- OS: Ubuntu
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Göteborg
Re: Rensa en ts-fil [Löst]
Hade det inte räckt med:
<translation>[^<]*</translation>
(ej testat)
<translation>[^<]*</translation>
(ej testat)
Re: Rensa en ts-fil [Löst]
Jo, det verkar så. Testade på en svensk språkfil och det ser ut att funka.
Kände hela tiden att det måste finnas ett övergripande tecken, men hittade det inte, så tack!
Har vetat länge att möjligheten finns, men som sagt, aldrig riktigt försökt sätta mig in i det tidigare. Får nog ta och plugga lite. Det kan vara användbart vid fler tillfällen.
Kände hela tiden att det måste finnas ett övergripande tecken, men hittade det inte, så tack!
Har vetat länge att möjligheten finns, men som sagt, aldrig riktigt försökt sätta mig in i det tidigare. Får nog ta och plugga lite. Det kan vara användbart vid fler tillfällen.
Alltid på kanelen!
- Gunnar Hjalmarsson
- Inlägg: 3030
- Blev medlem: 08 aug 2010, 13:49
- OS: Ubuntu
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Göteborg
Re: Rensa en ts-fil [Löst]
[^<] betyder vilket tecken som helst utom <. Det fungerar förstås inte om < förekommer i översättningarna, men det kanske någon/något redan har tagit hand om genom att förekomsten av sådana tecken konverterats till t ex <.
Använde Perl en del för några år sedan, och lärde mig en del om 'regular expressions' därigenom.
Använde Perl en del för några år sedan, och lärde mig en del om 'regular expressions' därigenom.
Re: Rensa en ts-fil [Löst]
Taggar av diverse slag, förekommer ofta i översättningssträngar, så det har någon mycket riktigt tänkt på och ersatt <whatever> med <whatever>
Tack för hjälpen hur som helst! Jag kommer att ha stor nytta av detta uttryck, eftersom utvecklare ofta "glömmer" att publicera oöversatta ts-filer (templates). De få gånger jag bett om en rensad fil, har dom inte haft en aning om hur dom skall fixa det.
Jag är ju inte programmerare så jag gjorde nu äntligen slag i saken, tog den långa vägen och googlade mig fram. Fattar inte att jag inte hittade det korta uttrycket för alla tecken.
Tack för hjälpen hur som helst! Jag kommer att ha stor nytta av detta uttryck, eftersom utvecklare ofta "glömmer" att publicera oöversatta ts-filer (templates). De få gånger jag bett om en rensad fil, har dom inte haft en aning om hur dom skall fixa det.

Jag är ju inte programmerare så jag gjorde nu äntligen slag i saken, tog den långa vägen och googlade mig fram. Fattar inte att jag inte hittade det korta uttrycket för alla tecken.

Alltid på kanelen!
Re: Rensa en ts-fil
Hittade en bra sida där man kan testa sina regex. Man får bra förklaringar på vad de olika komponenterna gör och vilka som inte fungerar, samt hur det åtgärdas.
https://regex101.com/
https://regex101.com/
Alltid på kanelen!
- Gunnar Hjalmarsson
- Inlägg: 3030
- Blev medlem: 08 aug 2010, 13:49
- OS: Ubuntu
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Göteborg
Re: Rensa en ts-fil
Ser ut att vara en användbar lathund.eson57 skrev: https://regex101.com/
Re: Rensa en ts-fil
Jo, jag såg t.ex att ett snedstreck (/) måste argumenteras bort med ett bakåtlutat snedstreck (\). 

Alltid på kanelen!
Re: Rensa en ts-fil
Stötte på en skum sak när jag skulle rensa en po-fil, på samma sätt som med ts-filer. Det korta uttrycket [^<]* fungerade inte. Det ville radera i princip all text i hela filen. Har ingen aning om varför, men det borde ju ha med po syntax att göra... eller?
Vad jag försökte göra, var alltså att ta bort allt mellan citationstecknen i översättningssträngen...
Jag försökte då söka på...
...och ersätta med...
Det fungerade alltså inte. Mitt långa uttryck med "alla" tecken, fungerade däremot utmärkt.
Vad jag försökte göra, var alltså att ta bort allt mellan citationstecknen i översättningssträngen...
Kod: Markera allt
msgstr "Översatt textrad"
Kod: Markera allt
msgstr "[^<]*"
Kod: Markera allt
msgstr ""
Alltid på kanelen!
- Gunnar Hjalmarsson
- Inlägg: 3030
- Blev medlem: 08 aug 2010, 13:49
- OS: Ubuntu
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Göteborg
Re: Rensa en ts-fil
Nej, det gör det förstås inte eftersom strängen i en PO-fil inte avgränsas av något som börjar med '<'. Du skulle i så fall ha behövt:eson57 skrev:Jag försökte då söka på......och ersätta med...Kod: Markera allt
msgstr "[^<]*"
Det fungerade alltså inte.Kod: Markera allt
msgstr ""
Kod: Markera allt
msgstr "[^"]*"
Det är nog säkrare i PO-filer. Men det eventuella problemet med strängar uppdelade på flera rader kvarstår.eson57 skrev:Mitt långa uttryck med "alla" tecken, fungerade däremot utmärkt.
Re: Rensa en ts-fil
Tack, då förstår jag bättre. Knepigt det här. Skall man få med flerradig översättning, så klipper den även originalspråket (msgid). Lyckades hitta en fil med flerradig översättning och prova.
Nåja, i går var nog första gången jag stötte på behovet av att rensa en po-fil, så det kanske inte är något man behöver fördjupa sig i. Filen i går, hade inga flerradiga översättningar.
Nåja, i går var nog första gången jag stötte på behovet av att rensa en po-fil, så det kanske inte är något man behöver fördjupa sig i. Filen i går, hade inga flerradiga översättningar.
Alltid på kanelen!
- Gunnar Hjalmarsson
- Inlägg: 3030
- Blev medlem: 08 aug 2010, 13:49
- OS: Ubuntu
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Göteborg
Re: Rensa en ts-fil
När gettext används för översättning, finns väl normalt en mall (POT-fil) tillgänglig som man kan utgå från för att starta översättning till ett nytt språk.
Re: Rensa en ts-fil
Jo, för det mesta. Vissa utvecklare slarvar med publiceringen dock. Det är ju inte alla som finns på Launchpad.
Fick för mig att ta en titt på Electrum i går och kunde inte finna någon källfil, men har i och för sig inte frågat heller. Ville först ta en titt för att bedöma svårighetsgraden.
Han verkar använda Crowdin för översättning, men svenska saknas bland tillgängliga språk.
Fick för mig att ta en titt på Electrum i går och kunde inte finna någon källfil, men har i och för sig inte frågat heller. Ville först ta en titt för att bedöma svårighetsgraden.
Han verkar använda Crowdin för översättning, men svenska saknas bland tillgängliga språk.
Alltid på kanelen!