Welcome to TiddlyWiki created by Jeremy Ruston; Copyright © 2004-2007 Jeremy Ruston, Copyright © 2007-2011 UnaMesa Association
;@@מקבילה עברית :@@
:הכל פתוח, הכל אפשרי
!!!קרדיטים
~StringTheory (מתרגמים פרטיים)
!טעות נפוצה
הרבה פעמים התרגום המתאים הוא
:"ביקשתי"
;ולא
:"שאלתי"
!!!קרדיטים
rodneymckay ( מצוות EXTREME)
!טעות נפוצה
חבורה של קלישאות
!תרגום נכון
אוסף קלישאות
!!!קרדיטים
vered53 (משתתפים)
אני נתקל רבות בשימוש במלה ''"כאוס"''. לא מדובר כאן בטעות, כי אם בהעדפה - שכן, באופן אישי אני מעדיף את השימוש במלה ''"תוהו"'' העברית למהדרין, במקום המקור היווני.
!!!קרדיטים
~StringTheory (מתרגמים פרטיים)
!טעות נפוצה
;משפט לדוגמה:
: .I'll see you in a couple of days
הרבה מתרגמים את זה כ-"נתראה בעוד יומיים".
אז זה נכון ש-couple מתורגם ל-"זוג", "צמד" משהו שמעיד על "2".
אבל לרוב אין הכוונה דווקא לצמד כי אם ל-"__כמה__", בלי להגיד ממש מספר כלשהו.
כך שכדאי לתרגם את זה ל-''"נתראה בעוד כמה ימים"''.
יש כאלה שלא שמים לב למילה __OF__ שנמצאת במשפט.
;הרי אומרים:
: A couple of days
:A couple of hours
זה כמו לומר בעברית "מהימים" או "מהשעות"
מה שהופך את זה ל-"כמה" ולא מלה נרדפת לזוג.
!!!קרדיטים
Pippo (מתרגמים פרטיים)
~DrSub ( מצוות EXTREME)
version.extensions.DcTableOfContentsPlugin= {
major: 0, minor: 4, revision: 0,
type: "macro",
source: "http://devpad.tiddlyspot.com#DcTableOfContentsPlugin"
};
// Replace heading formatter with our own
for (var n=0; n<config.formatters.length; n++) {
var format = config.formatters[n];
if (format.name == 'heading') {
format.handler = function(w) {
// following two lines is the default handler
var e = createTiddlyElement(w.output, "h" + w.matchLength);
w.subWikifyTerm(e, this.termRegExp); //updated for TW 2.2+
// Only show [top] if current tiddler is using showtoc
if (w.tiddler && w.tiddler.isTOCInTiddler == 1) {
// Create a container for the default CSS values
var c = createTiddlyElement(e, "div");
c.setAttribute("style", "font-size: 0.5em; color: blue;");
// Create the link to jump to the top
createTiddlyButton(c, " [top]", "Go to top of tiddler", window.scrollToTop, "dcTOCTop", null, null);
}
}
break;
}
}
config.macros.showtoc = {
handler: function(place, macroName, params, wikifier, paramString, tiddler) {
var text = "";
var title = "";
var myTiddler = null;
// Did they pass in a tiddler?
if (params.length) {
title = params[0];
myTiddler = store.getTiddler(title);
} else {
myTiddler = tiddler;
}
if (myTiddler == null) {
wikify("ERROR: Could not find " + title, place);
return;
}
var lines = myTiddler .text.split("\n");
myTiddler.isTOCInTiddler = 1;
// Create a parent container so the TOC can be customized using CSS
var r = createTiddlyElement(place, "div", null, "dcTOC");
// create toggle button
createTiddlyButton(r, "toggle", "show/collapse table of contents",
function() { config.macros.showtoc.toggleElement(this.nextSibling); },
"toggleButton")
// Create a container so the TOC can be customized using CSS
var c = createTiddlyElement(r, "div");
if (lines != null) {
for (var x=0; x<lines.length; x++) {
var line = lines[x];
if (line.substr(0,1) == "!") {
// Find first non ! char
for (var i=0; i<line.length; i++) {
if (line.substr(i, 1) != "!") {
break;
}
}
var desc = line.substring(i);
// Remove WikiLinks
desc = desc.replace(/\[\[/g, "");
desc = desc.replace(/\]\]/g, "");
text += line.substr(0, i).replace(/[!]/g, '*');
text += '<html><a href="javascript:;" onClick="window.scrollToHeading(\'' + title + '\', \'' + desc+ '\', event)">' + desc+ '</a></html>\n';
}
}
}
wikify(text, c);
}
}
config.macros.showtoc.toggleElement = function(e) {
if(e) {
if(e.style.display != "none") {
e.style.display = "none";
} else {
e.style.display = "";
}
}
};
window.scrollToTop = function(evt) {
if (! evt)
var evt = window.event;
var target = resolveTarget(evt);
var tiddler = story.findContainingTiddler(target);
if (! tiddler)
return false;
window.scrollTo(0, ensureVisible(tiddler));
return false;
};
window.scrollToHeading = function(title, anchorName, evt) {
var tiddler = null;
if (! evt)
var evt = window.event;
if (title) {
story.displayTiddler(store.getTiddler(title), title, null, false);
tiddler = document.getElementById(story.idPrefix + title);
} else {
var target = resolveTarget(evt);
tiddler = story.findContainingTiddler(target);
}
if (tiddler == null)
return false;
var children1 = tiddler.getElementsByTagName("h1");
var children2 = tiddler.getElementsByTagName("h2");
var children3 = tiddler.getElementsByTagName("h3");
var children4 = tiddler.getElementsByTagName("h4");
var children5 = tiddler.getElementsByTagName("h5");
var children = new Array();
children = children.concat(children1, children2, children3, children4, children5);
for (var i = 0; i < children.length; i++) {
for (var j = 0; j < children[i].length; j++) {
var heading = children[i][j].innerHTML;
// Remove all HTML tags
while (heading.indexOf("<") >= 0) {
heading = heading.substring(0, heading.indexOf("<")) + heading.substring(heading.indexOf(">") + 1);
}
// Cut off the code added in showtoc for TOP
heading = heading.substr(0, heading.length-6);
if (heading == anchorName) {
var y = findPosY(children[i][j]);
window.scrollTo(0,y);
return false;
}
}
}
return false
};
!טעות נפוצה
;תורגם בטעות "לראשונה מזה אי פעם".
*ראשית, התרגום מילולי ולא נכון בעברית.
;אומרים
:"לראשונה אי פעם"
;ולא
:"לראשונה מזה אי פעם".
*שנית, משמעות הצירוף "in forever" היא "זמן רב" ולא "אי פעם".
!תרגום נכון
;"לראשונה מזה זמן רב"
!!!קרדיטים
rodneymckay ( מצוות EXTREME)
++++![המילה Fuck מופיעה פעמים רבות, בכל פעם בהקשר שונה.]
!!!דוגמאות:
;Fuck off -
:תסתלק
;Fuck off then -
:אז תסתלק
;you're no fucking good -
:אתה דפוק
;Give me a fucking chance -
:לכל הרוחות, תן לי הזדמנות
;Will you all just shut your fucking mouths now -
:אולי תסתמו את הפה עכשיו
;you thoughtless fucking bastard -
:ממזר חסר רגש
;you don't fucking care -
:אתה לא שם זיין
;I'll smash them fucking black brains -
:אני ארסק את המוחות הדפוקים שלהם
;out of that fucking black head -
:מחוץ לראשם השחור (היכן להכניס את ה-פאק?)
;fucking mates down the pub -
:החברים הדפוקים שלו בפאב
===
!ראו גם...
[[קללות]]
!!!קרדיטים
lea (מתרגמים פרטיים)
!טעות נפוצה
I never want to see you again, Jack. ''GOODBYE''!
והתרגום :
אני לא רוצה לראות אותך שוב לעולם, ג'ק. ''להתראות!''"
זו דוגמה קיצונית להמחשת טעות חוזרת ונשנית בה אני נתקל בתרגומים רבים, שבהם מתרגמים את GOODBYE - כמעט תמיד כ-"להתראות".
יש כאן חוסר הבנה בסיסי שהמובן של "להתראות" בעברית, זו ברכת פרידה מנומסת, תוך ''הבעת תקווה לפגישה עתידית.'' ואילו כאן נאמר במפורש - ''שלום ולא להתראות!''
לכן, מדובר כאן לא רק בתרגום הפוך, שמחטיא לחלוטין את המשמעות וחוטא למקור בשתי השפות, אלא אף בטעות שבלב שלם ניתן לציין אותה כטפשית!
(אגב, אני נתקל בטעות זו רבות, ומצד מתרגמים ותיקים וחדשים)
!!!קרדיטים
~StringTheory (מתרגמים פרטיים)
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
!טעות נפוצה
כמעט תמיד מתורגם אוטו' : בחור
!אפשרויות נוספות
בחור, טיפוס, איזה אחד, סתם אחד, סתם מישהו
;בהקשרים שליליים כדאי לתרגם "טיפוס"
;למשל :
:!What an annoying guy
;עדיף לתרגם :
:איזה טיפוס מעצבן!
!!!קרדיטים
~StringTheory (מתרגמים פרטיים)
!תרגום נכון
:"תעשה כבקשתי"
;או
:"תעשה לי טובה"
;אפשר גם
"זרום איתי"
!טעות נפוצה
:בדרך כלל מתורגם: "תשעשע אותי"
!!!קרדיטים
rodneymckay ( מצוות EXTREME)
~StringTheory (מתרגמים פרטיים)
!טעות נפוצה
;מתרגמים את המילה kind אוטומטית ל"אדיב".
:kind יכולה להתפרש כ"טוב לב", "נחמד" - תלוי בהקשר.
{{{
המילה "אדיב" מדברת על התנהגות מנומסת/מתחשבת בלי קשר אם
היא נובעת מ"בפנים". כשאומרים על מישהו באנגלית:
he's a kind man בד"כ מתכוונים לזה שהוא אדם טוב לב,
לא סתם שהוא אדיב.
}}}
;כשהיא מופיעה בצורה הזו : __kind of__ מקבלת משמעות שונה.
:kind of a fool
סוג של שוטה.
מעין ליצן.
!!!קרדיטים
אלמוני_פלמוני (מתרגמים פרטיים)
lea (מתרגמים פרטיים)
/***
|''Name:''|LoadRemoteFileThroughProxy (previous LoadRemoteFileHijack)|
|''Description:''|When the TiddlyWiki file is located on the web (view over http) the content of [[SiteProxy]] tiddler is added in front of the file url. If [[SiteProxy]] does not exist "/proxy/" is added. |
|''Version:''|1.1.0|
|''Date:''|mar 17, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#LoadRemoteFileHijack|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
***/
//{{{
version.extensions.LoadRemoteFileThroughProxy = {
major: 1, minor: 1, revision: 0,
date: new Date("mar 17, 2007"),
source: "http://tiddlywiki.bidix.info/#LoadRemoteFileThroughProxy"};
if (!window.bidix) window.bidix = {}; // bidix namespace
if (!bidix.core) bidix.core = {};
bidix.core.loadRemoteFile = loadRemoteFile;
loadRemoteFile = function(url,callback,params)
{
if ((document.location.toString().substr(0,4) == "http") && (url.substr(0,4) == "http")){
url = store.getTiddlerText("SiteProxy", "/proxy/") + url;
}
return bidix.core.loadRemoteFile(url,callback,params);
}
//}}}
[img[http://imagizer.imageshack.us/v2/100x75q90/21/3pdm.png]]
----
//__''[[מ י ל ו ן]]''__//
//__''[[מ ד ר י כ י ם]]''__//
//__''[[ע ז ר י ם]]''__//
//__''[[מ א מ ר י ם]]''__//
----
//__''ר ש י מ ו ת''__//
[[רשימת הטידלרים]]
[[רשימת טבלאות]]
[[רשימת תגיות]]
----
//__''נ ו ש א י ם''__//
[[איות]]
[[דקדוק]]
[[ט ע ו י ו ת - נ פ ו צ ו ת]]
[[קללות]]
----
//__''מ ע ר כ ת''__//
[[WelcomeToTiddlyspot]]
[[GettingStarted]]
[[סימונים בטידלר]]
[[קישורים מומלצים]]
[[מקשי-קיצור שימושיים בטידלרים]]
[[קרדיטים]]
!טעות נפוצה
מתרגמים כמעט אוטומטית את ''NEED'' ל-"__צריך__". לא תמיד כך, לעתים לא רחוקות זה במשמעות של "__''חייב''__" (להדגשת אילוץ או דחיפות. לכן ההבדל בין השניים עשוי להיות די משמעותי).
!תרגום אפשרי :
:@@צריך, חייב, מוכרח@@ (תלוי הקשר)
!!!קרדיטים
~StringTheory (מתרגמים פרטיים)
version.extensions.NestedSlidersPlugin= {major: 2, minor: 4, revision: 9, date: new Date(2008,11,15)};
// options for deferred rendering of sliders that are not initially displayed
if (config.options.chkFloatingSlidersAnimate===undefined)
config.options.chkFloatingSlidersAnimate=false; // avoid clipping problems in IE
// default styles for 'floating' class
setStylesheet(".floatingPanel { position:absolute; z-index:10; padding:0.5em; margin:0em; \
background-color:#eee; color:#000; border:1px solid #000; text-align:left; }","floatingPanelStylesheet");
// if removeCookie() function is not defined by TW core, define it here.
if (window.removeCookie===undefined) {
window.removeCookie=function(name) {
document.cookie = name+'=; expires=Thu, 01-Jan-1970 00:00:01 UTC; path=/;';
}
}
config.formatters.push( {
name: "nestedSliders",
match: "\\n?\\+{3}",
terminator: "\\s*\\={3}\\n?",
lookahead: "\\n?\\+{3}(\\+)?(\\([^\\)]*\\))?(\\!*)?(\\^(?:[^\\^\\*\\@\\[\\>]*\\^)?)?(\\*)?(\\@)?(?:\\{\\{([\\w]+[\\s\\w]*)\\{)?(\\[[^\\]]*\\])?(\\[[^\\]]*\\])?(?:\\}{3})?(\\#[^:]*\\:)?(\\>)?(\\.\\.\\.)?\\s*",
handler: function(w)
{
lookaheadRegExp = new RegExp(this.lookahead,"mg");
lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = lookaheadRegExp.exec(w.source)
if(lookaheadMatch && lookaheadMatch.index == w.matchStart)
{
var defopen=lookaheadMatch[1];
var cookiename=lookaheadMatch[2];
var header=lookaheadMatch[3];
var panelwidth=lookaheadMatch[4];
var transient=lookaheadMatch[5];
var hover=lookaheadMatch[6];
var buttonClass=lookaheadMatch[7];
var label=lookaheadMatch[8];
var openlabel=lookaheadMatch[9];
var panelID=lookaheadMatch[10];
var blockquote=lookaheadMatch[11];
var deferred=lookaheadMatch[12];
// location for rendering button and panel
var place=w.output;
// default to closed, no cookie, no accesskey, no alternate text/tip
var show="none"; var cookie=""; var key="";
var closedtext=">"; var closedtip="";
var openedtext="<"; var openedtip="";
// extra "+", default to open
if (defopen) show="block";
// cookie, use saved open/closed state
if (cookiename) {
cookie=cookiename.trim().slice(1,-1);
cookie="chkSlider"+cookie;
if (config.options[cookie]==undefined)
{ config.options[cookie] = (show=="block") }
show=config.options[cookie]?"block":"none";
}
// parse label/tooltip/accesskey: [label=X|tooltip]
if (label) {
var parts=label.trim().slice(1,-1).split("|");
closedtext=parts.shift();
if (closedtext.substr(closedtext.length-2,1)=="=")
{ key=closedtext.substr(closedtext.length-1,1); closedtext=closedtext.slice(0,-2); }
openedtext=closedtext;
if (parts.length) closedtip=openedtip=parts.join("|");
else { closedtip="show "+closedtext; openedtip="hide "+closedtext; }
}
// parse alternate label/tooltip: [label|tooltip]
if (openlabel) {
var parts=openlabel.trim().slice(1,-1).split("|");
openedtext=parts.shift();
if (parts.length) openedtip=parts.join("|");
else openedtip="hide "+openedtext;
}
var title=show=='block'?openedtext:closedtext;
var tooltip=show=='block'?openedtip:closedtip;
// create the button
if (header) { // use "Hn" header format instead of button/link
var lvl=(header.length>5)?5:header.length;
var btn = createTiddlyElement(createTiddlyElement(place,"h"+lvl,null,null,null),"a",null,buttonClass,title);
btn.onclick=onClickNestedSlider;
btn.setAttribute("href","javascript:;");
btn.setAttribute("title",tooltip);
}
else
var btn = createTiddlyButton(place,title,tooltip,onClickNestedSlider,buttonClass);
btn.innerHTML=title; // enables use of HTML entities in label
// set extra button attributes
btn.setAttribute("closedtext",closedtext);
btn.setAttribute("closedtip",closedtip);
btn.setAttribute("openedtext",openedtext);
btn.setAttribute("openedtip",openedtip);
btn.sliderCookie = cookie; // save the cookiename (if any) in the button object
btn.defOpen=defopen!=null; // save default open/closed state (boolean)
btn.keyparam=key; // save the access key letter ("" if none)
if (key.length) {
btn.setAttribute("accessKey",key); // init access key
btn.onfocus=function(){this.setAttribute("accessKey",this.keyparam);}; // **reclaim** access key on focus
}
btn.setAttribute("hover",hover?"true":"false");
btn.onmouseover=function(ev) {
// optional 'open on hover' handling
if (this.getAttribute("hover")=="true" && this.sliderPanel.style.display=='none') {
document.onclick.call(document,ev); // close transients
onClickNestedSlider(ev); // open this slider
}
// mouseover on button aligns floater position with button
if (window.adjustSliderPos) window.adjustSliderPos(this.parentNode,this,this.sliderPanel);
}
// create slider panel
var panelClass=panelwidth?"floatingPanel":"sliderPanel";
if (panelID) panelID=panelID.slice(1,-1); // trim off delimiters
var panel=createTiddlyElement(place,"div",panelID,panelClass,null);
panel.button = btn; // so the slider panel know which button it belongs to
btn.sliderPanel=panel; // so the button knows which slider panel it belongs to
panel.defaultPanelWidth=(panelwidth && panelwidth.length>2)?panelwidth.slice(1,-1):"";
panel.setAttribute("transient",transient=="*"?"true":"false");
panel.style.display = show;
panel.style.width=panel.defaultPanelWidth;
panel.onmouseover=function(event) // mouseover on panel aligns floater position with button
{ if (window.adjustSliderPos) window.adjustSliderPos(this.parentNode,this.button,this); }
// render slider (or defer until shown)
w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
if ((show=="block")||!deferred) {
// render now if panel is supposed to be shown or NOT deferred rendering
w.subWikify(blockquote?createTiddlyElement(panel,"blockquote"):panel,this.terminator);
// align floater position with button
if (window.adjustSliderPos) window.adjustSliderPos(place,btn,panel);
}
else {
var src = w.source.substr(w.nextMatch);
var endpos=findMatchingDelimiter(src,"+++","===");
panel.setAttribute("raw",src.substr(0,endpos));
panel.setAttribute("blockquote",blockquote?"true":"false");
panel.setAttribute("rendered","false");
w.nextMatch += endpos+3;
if (w.source.substr(w.nextMatch,1)=="\n") w.nextMatch++;
}
}
}
}
)
function findMatchingDelimiter(src,starttext,endtext) {
var startpos = 0;
var endpos = src.indexOf(endtext);
// check for nested delimiters
while (src.substring(startpos,endpos-1).indexOf(starttext)!=-1) {
// count number of nested 'starts'
var startcount=0;
var temp = src.substring(startpos,endpos-1);
var pos=temp.indexOf(starttext);
while (pos!=-1) { startcount++; pos=temp.indexOf(starttext,pos+starttext.length); }
// set up to check for additional 'starts' after adjusting endpos
startpos=endpos+endtext.length;
// find endpos for corresponding number of matching 'ends'
while (startcount && endpos!=-1) {
endpos = src.indexOf(endtext,endpos+endtext.length);
startcount--;
}
}
return (endpos==-1)?src.length:endpos;
}
window.onClickNestedSlider=function(e)
{
if (!e) var e = window.event;
var theTarget = resolveTarget(e);
while (theTarget && theTarget.sliderPanel==undefined) theTarget=theTarget.parentNode;
if (!theTarget) return false;
var theSlider = theTarget.sliderPanel;
var isOpen = theSlider.style.display!="none";
// if SHIFT-CLICK, dock panel first (see [[MoveablePanelPlugin]])
if (e.shiftKey && config.macros.moveablePanel) config.macros.moveablePanel.dock(theSlider,e);
// toggle label
theTarget.innerHTML=isOpen?theTarget.getAttribute("closedText"):theTarget.getAttribute("openedText");
// toggle tooltip
theTarget.setAttribute("title",isOpen?theTarget.getAttribute("closedTip"):theTarget.getAttribute("openedTip"));
// deferred rendering (if needed)
if (theSlider.getAttribute("rendered")=="false") {
var place=theSlider;
if (theSlider.getAttribute("blockquote")=="true")
place=createTiddlyElement(place,"blockquote");
wikify(theSlider.getAttribute("raw"),place);
theSlider.setAttribute("rendered","true");
}
// show/hide the slider
if(config.options.chkAnimate && (!hasClass(theSlider,'floatingPanel') || config.options.chkFloatingSlidersAnimate))
anim.startAnimating(new Slider(theSlider,!isOpen,e.shiftKey || e.altKey,"none"));
else
theSlider.style.display = isOpen ? "none" : "block";
// reset to default width (might have been changed via plugin code)
theSlider.style.width=theSlider.defaultPanelWidth;
// align floater panel position with target button
if (!isOpen && window.adjustSliderPos) window.adjustSliderPos(theSlider.parentNode,theTarget,theSlider);
// if showing panel, set focus to first 'focus-able' element in panel
if (theSlider.style.display!="none") {
var ctrls=theSlider.getElementsByTagName("*");
for (var c=0; c<ctrls.length; c++) {
var t=ctrls[c].tagName.toLowerCase();
if ((t=="input" && ctrls[c].type!="hidden") || t=="textarea" || t=="select")
{ try{ ctrls[c].focus(); } catch(err){;} break; }
}
}
var cookie=theTarget.sliderCookie;
if (cookie && cookie.length) {
config.options[cookie]=!isOpen;
if (config.options[cookie]!=theTarget.defOpen) window.saveOptionCookie(cookie);
else window.removeCookie(cookie); // remove cookie if slider is in default display state
}
// prevent SHIFT-CLICK from being processed by browser (opens blank window... yuck!)
// prevent clicks *within* a slider button from being processed by browser
// but allow plain click to bubble up to page background (to close transients, if any)
if (e.shiftKey || theTarget!=resolveTarget(e))
{ e.cancelBubble=true; if (e.stopPropagation) e.stopPropagation(); }
Popup.remove(); // close open popup (if any)
return false;
}
// click in document background closes transient panels
document.nestedSliders_savedOnClick=document.onclick;
document.onclick=function(ev) { if (!ev) var ev=window.event; var target=resolveTarget(ev);
if (document.nestedSliders_savedOnClick)
var retval=document.nestedSliders_savedOnClick.apply(this,arguments);
// if click was inside a popup... leave transient panels alone
var p=target; while (p) if (hasClass(p,"popup")) break; else p=p.parentNode;
if (p) return retval;
// if click was inside transient panel (or something contained by a transient panel), leave it alone
var p=target; while (p) {
if ((hasClass(p,"floatingPanel")||hasClass(p,"sliderPanel"))&&p.getAttribute("transient")=="true") break;
p=p.parentNode;
}
if (p) return retval;
// otherwise, find and close all transient panels...
var all=document.all?document.all:document.getElementsByTagName("DIV");
for (var i=0; i<all.length; i++) {
// if it is not a transient panel, or the click was on the button that opened this panel, don't close it.
if (all[i].getAttribute("transient")!="true" || all[i].button==target) continue;
// otherwise, if the panel is currently visible, close it by clicking it's button
if (all[i].style.display!="none") window.onClickNestedSlider({target:all[i].button})
if (!hasClass(all[i],"floatingPanel")&&!hasClass(all[i],"sliderPanel")) all[i].style.display="none";
}
return retval;
};
// adjust floating panel position based on button position
if (window.adjustSliderPos==undefined) window.adjustSliderPos=function(place,btn,panel) {
if (hasClass(panel,"floatingPanel") && !hasClass(panel,"undocked")) {
// see [[MoveablePanelPlugin]] for use of 'undocked'
var rightEdge=document.body.offsetWidth-1;
var panelWidth=panel.offsetWidth;
var left=0;
var top=btn.offsetHeight;
if (place.style.position=="relative" && findPosX(btn)+panelWidth>rightEdge) {
left-=findPosX(btn)+panelWidth-rightEdge; // shift panel relative to button
if (findPosX(btn)+left<0) left=-findPosX(btn); // stay within left edge
}
if (place.style.position!="relative") {
var left=findPosX(btn);
var top=findPosY(btn)+btn.offsetHeight;
var p=place; while (p && !hasClass(p,'floatingPanel')) p=p.parentNode;
if (p) { left-=findPosX(p); top-=findPosY(p); }
if (left+panelWidth>rightEdge) left=rightEdge-panelWidth;
if (left<0) left=0;
}
panel.style.left=left+"px"; panel.style.top=top+"px";
}
}
// TW2.1 and earlier:
// hijack Slider stop handler so overflow is visible after animation has completed
Slider.prototype.coreStop = Slider.prototype.stop;
Slider.prototype.stop = function()
{ this.coreStop.apply(this,arguments); this.element.style.overflow = "visible"; }
// TW2.2+
// hijack Morpher stop handler so sliderPanel/floatingPanel overflow is visible after animation has completed
if (version.major+.1*version.minor+.01*version.revision>=2.2) {
Morpher.prototype.coreStop = Morpher.prototype.stop;
Morpher.prototype.stop = function() {
this.coreStop.apply(this,arguments);
var e=this.element;
if (hasClass(e,"sliderPanel")||hasClass(e,"floatingPanel")) {
// adjust panel overflow and position after animation
e.style.overflow = "visible";
if (window.adjustSliderPos) window.adjustSliderPos(e.parentNode,e.button,e);
}
};
}
!טעות נפוצה
כמעט תמיד התרגום שמופיע הוא : ''עכשיו''.
במקרים בהם מלה זו נאמרת כציווי או להדגשת דחיפות, התרגום הנכון הוא : ''__מיד__''.
;למשל :
:!We have to go - NOW
!!!קרדיטים
~StringTheory (מתרגמים פרטיים)
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
/***
|''Name:''|PasswordOptionPlugin|
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Version:''|1.0.2|
|''Date:''|Apr 19, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#PasswordOptionPlugin|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
***/
//{{{
version.extensions.PasswordOptionPlugin = {
major: 1, minor: 0, revision: 2,
date: new Date("Apr 19, 2007"),
source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
author: 'BidiX (BidiX (at) bidix (dot) info',
license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',
coreVersion: '2.2.0 (Beta 5)'
};
config.macros.option.passwordCheckboxLabel = "Save this password on this computer";
config.macros.option.passwordInputType = "password"; // password | text
setStylesheet(".pasOptionInput {width: 11em;}\n","passwordInputTypeStyle");
merge(config.macros.option.types, {
'pas': {
elementType: "input",
valueField: "value",
eventName: "onkeyup",
className: "pasOptionInput",
typeValue: config.macros.option.passwordInputType,
create: function(place,type,opt,className,desc) {
// password field
config.macros.option.genericCreate(place,'pas',opt,className,desc);
// checkbox linked with this password "save this password on this computer"
config.macros.option.genericCreate(place,'chk','chk'+opt,className,desc);
// text savePasswordCheckboxLabel
place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));
},
onChange: config.macros.option.genericOnChange
}
});
merge(config.optionHandlers['chk'], {
get: function(name) {
// is there an option linked with this chk ?
var opt = name.substr(3);
if (config.options[opt])
saveOptionCookie(opt);
return config.options[name] ? "true" : "false";
}
});
merge(config.optionHandlers, {
'pas': {
get: function(name) {
if (config.options["chk"+name]) {
return encodeCookie(config.options[name].toString());
} else {
return "";
}
},
set: function(name,value) {config.options[name] = decodeCookie(value);}
}
});
// need to reload options to load passwordOptions
loadOptionsCookie();
/*
if (!config.options['pasPassword'])
config.options['pasPassword'] = '';
merge(config.optionsDesc,{
pasPassword: "Test password"
});
*/
//}}}
!טעות נפוצה
כמעט תמיד מתורגם - חיובי
;למעשה האפשרויות הן די מגוונות ותלויות הקשר :
:בוודאות, בטוח, ודאי, לחלוטין, מוחלט וכו'
!!!קרדיטים
~StringTheory (מתרגמים פרטיים)
!טעות נפוצה
pretty זה לא תמיד ''"יפה"'' , לעתים זה ''"למדי"'', ''"במידה מסוימת"'' .
;דוגמה:
:pretty good - ''"טוב למדי"''. או ''"לא רע"''
{{{
וגם עם זה צריך להיזהר, כי האנגלים ידועים באנדרסטיימנט שלהם.
נכון שמילולית pretty good ו-rather good זה "טוב למדי", אבל
הרבה פעמים הכוונה האמיתית היא שזה ממש טוב.
}}}
!!!קרדיטים
superman30 (משתתפים)
אלמוני_פלמוני (מתרגמים פרטיים)
!להיות בטוחים ב-SAFE
נתקלתי בלא מעט מקרים של תרגום קלוקל למונח ''SAFE'', בהקשרים שונים. ראשית, רוב התרגומים נקטו במלה "''בטוח''" - גם כאשר בעברית קיים ערפול בהקשר המשפט, ואנחנו לא לגמרי "בטוחים" אם הבטוח הוא במובן של בטחון, או במובן של שכנוע. לכן אספתי דוגמאות למשפטים נפוצים באנגלית בהם כדאי שלא להשתמש כלל אוטומטית ב-"בטוח" (גם אם מתרגמים רבים מדי אכן נוהגים כך). אתם בהחלט מוזמנים להוסיף!
''Safety'' issues - בעיות אבטחה
You are not ''safe'' here - בטחונך אינו מובטח כאן / הגנתך אינה מובטחת / אינך מוגן במקום הזה
Be ''safe'' - שמור על עצמך
To ensure their ''safe'' return - להבטיח את שובם/חזרתם בשלום
''safe'' and sound - בריא ושלם
drive safely - סעו בזהירות
safe place / safe house - בית מוגן / מקום מסתור
safe estimate - הערכה זהירה
safe to say - אפשר לומר, ניתן לומר בבטחון
better safe than sorry - עדיף להיזהר מאשר להתחרט
בכל מקרה, כדאי תמיד להפעיל קצת את הראש וגם לקרוא את התרגום שלכם מעמדת הצופה - זו אחת הדרכים לשיפור התרגום ולשירוש טעויות מעין אלה.
!ראו גם...
(דוגמאות למונחים נוספים בעלי משמעויות מרובות שמצומצמות בעברית לאפשרות אחת, וכזו שעל-פי-רוב אינה מדוייקת)
[[Positive]]
[[Upset]]
[[Guy]]
!!!קרדיטים
StringTheory (מתרגמים פרטיים)
olive (משתתפים)
version.extensions.SinglePageModePlugin= {major: 2, minor: 9, revision: 7, date: new Date(2010,11,30)};
config.paramifiers.SPM = { onstart: function(v) {
config.options.chkSinglePageMode=eval(v);
if (config.options.chkSinglePageMode && config.options.chkSinglePagePermalink && !config.browser.isSafari) {
config.lastURL = window.location.hash;
if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
}
} };
if (config.options.chkSinglePageMode==undefined)
config.options.chkSinglePageMode=false;
if (config.options.chkSinglePagePermalink==undefined)
config.options.chkSinglePagePermalink=true;
if (config.options.chkSinglePageKeepFoldedTiddlers==undefined)
config.options.chkSinglePageKeepFoldedTiddlers=false;
if (config.options.chkSinglePageKeepEditedTiddlers==undefined)
config.options.chkSinglePageKeepEditedTiddlers=false;
if (config.options.chkTopOfPageMode==undefined)
config.options.chkTopOfPageMode=false;
if (config.options.chkBottomOfPageMode==undefined)
config.options.chkBottomOfPageMode=false;
if (config.options.chkSinglePageAutoScroll==undefined)
config.options.chkSinglePageAutoScroll=false;
config.SPMTimer = 0;
config.lastURL = window.location.hash;
function checkLastURL()
{
if (!config.options.chkSinglePageMode)
{ window.clearInterval(config.SPMTimer); config.SPMTimer=0; return; }
if (config.lastURL == window.location.hash) return; // no change in hash
var tids=decodeURIComponent(window.location.hash.substr(1)).readBracketedList();
if (tids.length==1) // permalink (single tiddler in URL)
story.displayTiddler(null,tids[0]);
else { // restore permaview or default view
config.lastURL = window.location.hash;
if (!tids.length) tids=store.getTiddlerText("DefaultTiddlers").readBracketedList();
story.closeAllTiddlers();
story.displayTiddlers(null,tids);
}
}
if (Story.prototype.SPM_coreDisplayTiddler==undefined)
Story.prototype.SPM_coreDisplayTiddler=Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,tiddler,template,animate,slowly)
{
var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
var tiddlerElem=story.getTiddler(title); // ==null unless tiddler is already displayed
var opt=config.options;
var single=opt.chkSinglePageMode && !startingUp;
var top=opt.chkTopOfPageMode && !startingUp;
var bottom=opt.chkBottomOfPageMode && !startingUp;
if (single) {
story.forEachTiddler(function(tid,elem) {
// skip current tiddler and, optionally, tiddlers that are folded.
if ( tid==title
|| (opt.chkSinglePageKeepFoldedTiddlers && elem.getAttribute("folded")=="true"))
return;
// if a tiddler is being edited, ask before closing
if (elem.getAttribute("dirty")=="true") {
if (opt.chkSinglePageKeepEditedTiddlers) return;
// if tiddler to be displayed is already shown, then leave active tiddler editor as is
// (occurs when switching between view and edit modes)
if (tiddlerElem) return;
// otherwise, ask for permission
var msg="'"+tid+"' is currently being edited.\n\n";
msg+="Press OK to save and close this tiddler\nor press Cancel to leave it opened";
if (!confirm(msg)) return; else story.saveTiddler(tid);
}
story.closeTiddler(tid);
});
}
else if (top)
arguments[0]=null;
else if (bottom)
arguments[0]="bottom";
if (single && opt.chkSinglePagePermalink && !config.browser.isSafari) {
window.location.hash = encodeURIComponent(String.encodeTiddlyLink(title));
config.lastURL = window.location.hash;
document.title = wikifyPlain("SiteTitle") + " - " + title;
if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
}
if (tiddlerElem && tiddlerElem.getAttribute("dirty")=="true") { // editing... move tiddler without re-rendering
var isTopTiddler=(tiddlerElem.previousSibling==null);
if (!isTopTiddler && (single || top))
tiddlerElem.parentNode.insertBefore(tiddlerElem,tiddlerElem.parentNode.firstChild);
else if (bottom)
tiddlerElem.parentNode.insertBefore(tiddlerElem,null);
else this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
} else
this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
var tiddlerElem=story.getTiddler(title);
if (tiddlerElem&&opt.chkSinglePageAutoScroll) {
// scroll to top of page or top of tiddler
var isTopTiddler=(tiddlerElem.previousSibling==null);
var yPos=isTopTiddler?0:ensureVisible(tiddlerElem);
// if animating, defer scroll until after animation completes
var delay=opt.chkAnimate?config.animDuration+10:0;
setTimeout("window.scrollTo(0,"+yPos+")",delay);
}
}
if (Story.prototype.SPM_coreDisplayTiddlers==undefined)
Story.prototype.SPM_coreDisplayTiddlers=Story.prototype.displayTiddlers;
Story.prototype.displayTiddlers = function() {
// suspend single/top/bottom modes when showing multiple tiddlers
var opt=config.options;
var saveSPM=opt.chkSinglePageMode; opt.chkSinglePageMode=false;
var saveTPM=opt.chkTopOfPageMode; opt.chkTopOfPageMode=false;
var saveBPM=opt.chkBottomOfPageMode; opt.chkBottomOfPageMode=false;
this.SPM_coreDisplayTiddlers.apply(this,arguments);
opt.chkBottomOfPageMode=saveBPM;
opt.chkTopOfPageMode=saveTPM;
opt.chkSinglePageMode=saveSPM;
}
לקסיקון פרטי וכלי-עזר למתרגמים [img[http://imagizer.imageshack.us/v2/100x75q90/21/3pdm.png]]
[img[http://imagizer.imageshack.us/v2/100x75q90/21/3pdm.png]] //''מתרגום לתרגום''//
div[tags~="RTL"].tiddler {
direction: rtl;
}
div[tags~="RTL"].tiddler .subtitle {
direction: rtl;
}
div[tags~="RTL"].tiddler .tagged {
direction: rtl;
float: left;
}
!!!@@תרגום מומלץ@@
;''//הזוי//''
:אפשר גם : ''סוריאליסטי''
!!!קרדיטים
~StringTheory (מתרגמים פרטיים)
!טעות נפוצה
;זה עושה הרבה יותר שכל. (התרגום מילולי!)
!תרגום נכון
"זה בהחלט הגיוני" או "זה מאוד הגיוני".
;אפשר גם :
:"זה הרבה יותר הגיוני" (בהקשר הנכון)
!!!קרדיטים
mojo (מתרגמים פרטיים)
rodneymckay ( מצוות EXTREME)
~StringTheory (מתרגמים פרטיים)
!טעות נפוצה
ביטוי שגור באנגלית, שנתקלים בו רבות, ובמרבית המקרים אינו מתורגם נכון...
ברוב התרגומים מופיע - ''"זה מנחם"''. זו יותר שגיאה מאשר טעות (אלא אם ההקשר אכן עוסק בסוג של תנחומים). הביטוי המקביל הנכון יותר בעברית הוא ''"זה מעודד"''.
!!!קרדיטים
~StringTheory (מתרגמים פרטיים)
/***
Description: Contains the stuff you need to use Tiddlyspot
Note, you also need UploadPlugin, PasswordOptionPlugin and LoadRemoteFileThroughProxy
from http://tiddlywiki.bidix.info for a complete working Tiddlyspot site.
***/
//{{{
// edit this if you are migrating sites or retrofitting an existing TW
config.tiddlyspotSiteId = 'aviram1';
// make it so you can by default see edit controls via http
config.options.chkHttpReadOnly = false;
window.readOnly = false; // make sure of it (for tw 2.2)
window.showBackstage = true; // show backstage too
// disable autosave in d3
if (window.location.protocol != "file:")
config.options.chkGTDLazyAutoSave = false;
// tweak shadow tiddlers to add upload button, password entry box etc
with (config.shadowTiddlers) {
SiteUrl = 'http://'+config.tiddlyspotSiteId+'.tiddlyspot.com';
SideBarOptions = SideBarOptions.replace(/(<<saveChanges>>)/,"$1<<tiddler TspotSidebar>>");
OptionsPanel = OptionsPanel.replace(/^/,"<<tiddler TspotOptions>>");
DefaultTiddlers = DefaultTiddlers.replace(/^/,"[[WelcomeToTiddlyspot]] ");
MainMenu = MainMenu.replace(/^/,"[[WelcomeToTiddlyspot]] ");
}
// create some shadow tiddler content
merge(config.shadowTiddlers,{
'TspotControls':[
"| tiddlyspot password:|<<option pasUploadPassword>>|",
"| site management:|<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . . " + config.tiddlyspotSiteId + ">>//(requires tiddlyspot password)//<br>[[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]], [[download (go offline)|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download]]|",
"| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[blog|http://tiddlyspot.blogspot.com/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|"
].join("\n"),
'TspotOptions':[
"tiddlyspot password:",
"<<option pasUploadPassword>>",
""
].join("\n"),
'TspotSidebar':[
"<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . . " + config.tiddlyspotSiteId + ">><html><a href='http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download' class='button'>download</a></html>"
].join("\n"),
'WelcomeToTiddlyspot':[
"This document is a ~TiddlyWiki from tiddlyspot.com. A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //What now?// @@ Before you can save any changes, you need to enter your password in the form below. Then configure privacy and other site settings at your [[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]] (your control panel username is //" + config.tiddlyspotSiteId + "//).",
"<<tiddler TspotControls>>",
"See also GettingStarted.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Working online// @@ You can edit this ~TiddlyWiki right now, and save your changes using the \"save to web\" button in the column on the right.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// @@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick. You can make changes and save them locally without being connected to the Internet. When you're ready to sync up again, just click \"upload\" and your ~TiddlyWiki will be saved back to tiddlyspot.com.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Help!// @@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]]. Also visit [[TiddlyWiki.org|http://tiddlywiki.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help. If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// @@ We hope you like using your tiddlyspot.com site. Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions."
].join("\n")
});
//}}}
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 03/01/2015 16:02:32 | AviramDan | [[/|http://aviram1.tiddlyspot.com/#Safe]] | [[store.cgi|http://aviram1.tiddlyspot.com/store.cgi]] | . | [[index.html | http://aviram1.tiddlyspot.com/index.html]] | . | ok |
| 03/01/2015 16:03:37 | AviramDan | [[/|http://aviram1.tiddlyspot.com/#Safe]] | [[store.cgi|http://aviram1.tiddlyspot.com/store.cgi]] | . | [[index.html | http://aviram1.tiddlyspot.com/index.html]] | . | ok |
| 03/01/2015 16:06:00 | AviramDan | [[/|http://aviram1.tiddlyspot.com/#Safe]] | [[store.cgi|http://aviram1.tiddlyspot.com/store.cgi]] | . | [[index.html | http://aviram1.tiddlyspot.com/index.html]] | . | ok |
| 03/01/2015 16:11:19 | AviramDan | [[/|http://aviram1.tiddlyspot.com/#%5B%5B%D7%98%20%D7%A2%20%D7%95%20%D7%99%20%D7%95%20%D7%AA%20-%20%D7%A0%20%D7%A4%20%D7%95%20%D7%A6%20%D7%95%20%D7%AA%5D%5D]] | [[store.cgi|http://aviram1.tiddlyspot.com/store.cgi]] | . | [[index.html | http://aviram1.tiddlyspot.com/index.html]] | . |
| 04/01/2015 21:20:16 | AviramDan | [[/|http://aviram1.tiddlyspot.com/#Safe]] | [[store.cgi|http://aviram1.tiddlyspot.com/store.cgi]] | . | [[index.html | http://aviram1.tiddlyspot.com/index.html]] | . |
| 04/01/2015 21:21:38 | AviramDan | [[/|http://aviram1.tiddlyspot.com/#Safe]] | [[store.cgi|http://aviram1.tiddlyspot.com/store.cgi]] | . | [[index.html | http://aviram1.tiddlyspot.com/index.html]] | . |
| 20/01/2015 17:30:59 | AviramDan | [[/|http://aviram1.tiddlyspot.com/#Safe]] | [[store.cgi|http://aviram1.tiddlyspot.com/store.cgi]] | . | [[index.html | http://aviram1.tiddlyspot.com/index.html]] | . |
| 26/01/2015 18:30:02 | AviramDan | [[/|http://aviram1.tiddlyspot.com/#%5B%5B%D7%91%D7%A8%D7%95%D7%9B%D7%99%D7%9D%20%D7%94%D7%91%D7%90%D7%99%D7%9D!%5D%5D]] | [[store.cgi|http://aviram1.tiddlyspot.com/store.cgi]] | . | [[index.html | http://aviram1.tiddlyspot.com/index.html]] | . |
| 15/12/2018 11:01:05 | YourName | [[/|http://aviram1.tiddlyspot.com/]] | [[store.cgi|http://aviram1.tiddlyspot.com/store.cgi]] | . | [[index.html | http://aviram1.tiddlyspot.com/index.html]] | . | failed |
| 15/12/2018 11:01:27 | YourName | [[/|http://aviram1.tiddlyspot.com/]] | [[store.cgi|http://aviram1.tiddlyspot.com/store.cgi]] | . | [[index.html | http://aviram1.tiddlyspot.com/index.html]] | . |
/***
|''Name:''|UploadPlugin|
|''Description:''|Save to web a TiddlyWiki|
|''Version:''|4.1.3|
|''Date:''|Feb 24, 2008|
|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|
|''Documentation:''|http://tiddlywiki.bidix.info/#UploadPluginDoc|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
|''Requires:''|PasswordOptionPlugin|
***/
//{{{
version.extensions.UploadPlugin = {
major: 4, minor: 1, revision: 3,
date: new Date("Feb 24, 2008"),
source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
author: 'BidiX (BidiX (at) bidix (dot) info',
coreVersion: '2.2.0'
};
//
// Environment
//
if (!window.bidix) window.bidix = {}; // bidix namespace
bidix.debugMode = false; // true to activate both in Plugin and UploadService
//
// Upload Macro
//
config.macros.upload = {
// default values
defaultBackupDir: '', //no backup
defaultStoreScript: "store.php",
defaultToFilename: "index.html",
defaultUploadDir: ".",
authenticateUser: true // UploadService Authenticate User
};
config.macros.upload.label = {
promptOption: "Save and Upload this TiddlyWiki with UploadOptions",
promptParamMacro: "Save and Upload this TiddlyWiki in %0",
saveLabel: "save to web",
saveToDisk: "save to disk",
uploadLabel: "upload"
};
config.macros.upload.messages = {
noStoreUrl: "No store URL in parmeters or options",
usernameOrPasswordMissing: "Username or password missing"
};
config.macros.upload.handler = function(place,macroName,params) {
if (readOnly)
return;
var label;
if (document.location.toString().substr(0,4) == "http")
label = this.label.saveLabel;
else
label = this.label.uploadLabel;
var prompt;
if (params[0]) {
prompt = this.label.promptParamMacro.toString().format([this.destFile(params[0],
(params[1] ? params[1]:bidix.basename(window.location.toString())), params[3])]);
} else {
prompt = this.label.promptOption;
}
createTiddlyButton(place, label, prompt, function() {config.macros.upload.action(params);}, null, null, this.accessKey);
};
config.macros.upload.action = function(params)
{
// for missing macro parameter set value from options
if (!params) params = {};
var storeUrl = params[0] ? params[0] : config.options.txtUploadStoreUrl;
var toFilename = params[1] ? params[1] : config.options.txtUploadFilename;
var backupDir = params[2] ? params[2] : config.options.txtUploadBackupDir;
var uploadDir = params[3] ? params[3] : config.options.txtUploadDir;
var username = params[4] ? params[4] : config.options.txtUploadUserName;
var password = config.options.pasUploadPassword; // for security reason no password as macro parameter
// for still missing parameter set default value
if ((!storeUrl) && (document.location.toString().substr(0,4) == "http"))
storeUrl = bidix.dirname(document.location.toString())+'/'+config.macros.upload.defaultStoreScript;
if (storeUrl.substr(0,4) != "http")
storeUrl = bidix.dirname(document.location.toString()) +'/'+ storeUrl;
if (!toFilename)
toFilename = bidix.basename(window.location.toString());
if (!toFilename)
toFilename = config.macros.upload.defaultToFilename;
if (!uploadDir)
uploadDir = config.macros.upload.defaultUploadDir;
if (!backupDir)
backupDir = config.macros.upload.defaultBackupDir;
// report error if still missing
if (!storeUrl) {
alert(config.macros.upload.messages.noStoreUrl);
clearMessage();
return false;
}
if (config.macros.upload.authenticateUser && (!username || !password)) {
alert(config.macros.upload.messages.usernameOrPasswordMissing);
clearMessage();
return false;
}
bidix.upload.uploadChanges(false,null,storeUrl, toFilename, uploadDir, backupDir, username, password);
return false;
};
config.macros.upload.destFile = function(storeUrl, toFilename, uploadDir)
{
if (!storeUrl)
return null;
var dest = bidix.dirname(storeUrl);
if (uploadDir && uploadDir != '.')
dest = dest + '/' + uploadDir;
dest = dest + '/' + toFilename;
return dest;
};
//
// uploadOptions Macro
//
config.macros.uploadOptions = {
handler: function(place,macroName,params) {
var wizard = new Wizard();
wizard.createWizard(place,this.wizardTitle);
wizard.addStep(this.step1Title,this.step1Html);
var markList = wizard.getElement("markList");
var listWrapper = document.createElement("div");
markList.parentNode.insertBefore(listWrapper,markList);
wizard.setValue("listWrapper",listWrapper);
this.refreshOptions(listWrapper,false);
var uploadCaption;
if (document.location.toString().substr(0,4) == "http")
uploadCaption = config.macros.upload.label.saveLabel;
else
uploadCaption = config.macros.upload.label.uploadLabel;
wizard.setButtons([
{caption: uploadCaption, tooltip: config.macros.upload.label.promptOption,
onClick: config.macros.upload.action},
{caption: this.cancelButton, tooltip: this.cancelButtonPrompt, onClick: this.onCancel}
]);
},
options: [
"txtUploadUserName",
"pasUploadPassword",
"txtUploadStoreUrl",
"txtUploadDir",
"txtUploadFilename",
"txtUploadBackupDir",
"chkUploadLog",
"txtUploadLogMaxLine"
],
refreshOptions: function(listWrapper) {
var opts = [];
for(i=0; i<this.options.length; i++) {
var opt = {};
opts.push();
opt.option = "";
n = this.options[i];
opt.name = n;
opt.lowlight = !config.optionsDesc[n];
opt.description = opt.lowlight ? this.unknownDescription : config.optionsDesc[n];
opts.push(opt);
}
var listview = ListView.create(listWrapper,opts,this.listViewTemplate);
for(n=0; n<opts.length; n++) {
var type = opts[n].name.substr(0,3);
var h = config.macros.option.types[type];
if (h && h.create) {
h.create(opts[n].colElements['option'],type,opts[n].name,opts[n].name,"no");
}
}
},
onCancel: function(e)
{
backstage.switchTab(null);
return false;
},
wizardTitle: "Upload with options",
step1Title: "These options are saved in cookies in your browser",
step1Html: "<input type='hidden' name='markList'></input><br>",
cancelButton: "Cancel",
cancelButtonPrompt: "Cancel prompt",
listViewTemplate: {
columns: [
{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
{name: 'Option', field: 'option', title: "Option", type: 'String'},
{name: 'Name', field: 'name', title: "Name", type: 'String'}
],
rowClasses: [
{className: 'lowlight', field: 'lowlight'}
]}
};
//
// upload functions
//
if (!bidix.upload) bidix.upload = {};
if (!bidix.upload.messages) bidix.upload.messages = {
//from saving
invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
backupSaved: "Backup saved",
backupFailed: "Failed to upload backup file",
rssSaved: "RSS feed uploaded",
rssFailed: "Failed to upload RSS feed file",
emptySaved: "Empty template uploaded",
emptyFailed: "Failed to upload empty template file",
mainSaved: "Main TiddlyWiki file uploaded",
mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved",
//specific upload
loadOriginalHttpPostError: "Can't get original file",
aboutToSaveOnHttpPost: 'About to upload on %0 ...',
storePhpNotFound: "The store script '%0' was not found."
};
bidix.upload.uploadChanges = function(onlyIfDirty,tiddlers,storeUrl,toFilename,uploadDir,backupDir,username,password)
{
var callback = function(status,uploadParams,original,url,xhr) {
if (!status) {
displayMessage(bidix.upload.messages.loadOriginalHttpPostError);
return;
}
if (bidix.debugMode)
alert(original.substr(0,500)+"\n...");
// Locate the storeArea div's
var posDiv = locateStoreArea(original);
if((posDiv[0] == -1) || (posDiv[1] == -1)) {
alert(config.messages.invalidFileError.format([localPath]));
return;
}
bidix.upload.uploadRss(uploadParams,original,posDiv);
};
if(onlyIfDirty && !store.isDirty())
return;
clearMessage();
// save on localdisk ?
if (document.location.toString().substr(0,4) == "file") {
var path = document.location.toString();
var localPath = getLocalPath(path);
saveChanges();
}
// get original
var uploadParams = new Array(storeUrl,toFilename,uploadDir,backupDir,username,password);
var originalPath = document.location.toString();
// If url is a directory : add index.html
if (originalPath.charAt(originalPath.length-1) == "/")
originalPath = originalPath + "index.html";
var dest = config.macros.upload.destFile(storeUrl,toFilename,uploadDir);
var log = new bidix.UploadLog();
log.startUpload(storeUrl, dest, uploadDir, backupDir);
displayMessage(bidix.upload.messages.aboutToSaveOnHttpPost.format([dest]));
if (bidix.debugMode)
alert("about to execute Http - GET on "+originalPath);
var r = doHttp("GET",originalPath,null,null,username,password,callback,uploadParams,null);
if (typeof r == "string")
displayMessage(r);
return r;
};
bidix.upload.uploadRss = function(uploadParams,original,posDiv)
{
var callback = function(status,params,responseText,url,xhr) {
if(status) {
var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
displayMessage(bidix.upload.messages.rssSaved,bidix.dirname(url)+'/'+destfile);
bidix.upload.uploadMain(params[0],params[1],params[2]);
} else {
displayMessage(bidix.upload.messages.rssFailed);
}
};
// do uploadRss
if(config.options.chkGenerateAnRssFeed) {
var rssPath = uploadParams[1].substr(0,uploadParams[1].lastIndexOf(".")) + ".xml";
var rssUploadParams = new Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
var rssString = generateRss();
// no UnicodeToUTF8 conversion needed when location is "file" !!!
if (document.location.toString().substr(0,4) != "file")
rssString = convertUnicodeToUTF8(rssString);
bidix.upload.httpUpload(rssUploadParams,rssString,callback,Array(uploadParams,original,posDiv));
} else {
bidix.upload.uploadMain(uploadParams,original,posDiv);
}
};
bidix.upload.uploadMain = function(uploadParams,original,posDiv)
{
var callback = function(status,params,responseText,url,xhr) {
var log = new bidix.UploadLog();
if(status) {
// if backupDir specified
if ((params[3]) && (responseText.indexOf("backupfile:") > -1)) {
var backupfile = responseText.substring(responseText.indexOf("backupfile:")+11,responseText.indexOf("\n", responseText.indexOf("backupfile:")));
displayMessage(bidix.upload.messages.backupSaved,bidix.dirname(url)+'/'+backupfile);
}
var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
displayMessage(bidix.upload.messages.mainSaved,bidix.dirname(url)+'/'+destfile);
store.setDirty(false);
log.endUpload("ok");
} else {
alert(bidix.upload.messages.mainFailed);
displayMessage(bidix.upload.messages.mainFailed);
log.endUpload("failed");
}
};
// do uploadMain
var revised = bidix.upload.updateOriginal(original,posDiv);
bidix.upload.httpUpload(uploadParams,revised,callback,uploadParams);
};
bidix.upload.httpUpload = function(uploadParams,data,callback,params)
{
var localCallback = function(status,params,responseText,url,xhr) {
url = (url.indexOf("nocache=") < 0 ? url : url.substring(0,url.indexOf("nocache=")-1));
if (xhr.status == 404)
alert(bidix.upload.messages.storePhpNotFound.format([url]));
if ((bidix.debugMode) || (responseText.indexOf("Debug mode") >= 0 )) {
alert(responseText);
if (responseText.indexOf("Debug mode") >= 0 )
responseText = responseText.substring(responseText.indexOf("\n\n")+2);
} else if (responseText.charAt(0) != '0')
alert(responseText);
if (responseText.charAt(0) != '0')
status = null;
callback(status,params,responseText,url,xhr);
};
// do httpUpload
var boundary = "---------------------------"+"AaB03x";
var uploadFormName = "UploadPlugin";
// compose headers data
var sheader = "";
sheader += "--" + boundary + "\r\nContent-disposition: form-data; name=\"";
sheader += uploadFormName +"\"\r\n\r\n";
sheader += "backupDir="+uploadParams[3] +
";user=" + uploadParams[4] +
";password=" + uploadParams[5] +
";uploaddir=" + uploadParams[2];
if (bidix.debugMode)
sheader += ";debug=1";
sheader += ";;\r\n";
sheader += "\r\n" + "--" + boundary + "\r\n";
sheader += "Content-disposition: form-data; name=\"userfile\"; filename=\""+uploadParams[1]+"\"\r\n";
sheader += "Content-Type: text/html;charset=UTF-8" + "\r\n";
sheader += "Content-Length: " + data.length + "\r\n\r\n";
// compose trailer data
var strailer = new String();
strailer = "\r\n--" + boundary + "--\r\n";
data = sheader + data + strailer;
if (bidix.debugMode) alert("about to execute Http - POST on "+uploadParams[0]+"\n with \n"+data.substr(0,500)+ " ... ");
var r = doHttp("POST",uploadParams[0],data,"multipart/form-data; ;charset=UTF-8; boundary="+boundary,uploadParams[4],uploadParams[5],localCallback,params,null);
if (typeof r == "string")
displayMessage(r);
return r;
};
// same as Saving's updateOriginal but without convertUnicodeToUTF8 calls
bidix.upload.updateOriginal = function(original, posDiv)
{
if (!posDiv)
posDiv = locateStoreArea(original);
if((posDiv[0] == -1) || (posDiv[1] == -1)) {
alert(config.messages.invalidFileError.format([localPath]));
return;
}
var revised = original.substr(0,posDiv[0] + startSaveArea.length) + "\n" +
store.allTiddlersAsHtml() + "\n" +
original.substr(posDiv[1]);
var newSiteTitle = getPageTitle().htmlEncode();
revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
revised = updateMarkupBlock(revised,"PRE-HEAD","MarkupPreHead");
revised = updateMarkupBlock(revised,"POST-HEAD","MarkupPostHead");
revised = updateMarkupBlock(revised,"PRE-BODY","MarkupPreBody");
revised = updateMarkupBlock(revised,"POST-SCRIPT","MarkupPostBody");
return revised;
};
//
// UploadLog
//
// config.options.chkUploadLog :
// false : no logging
// true : logging
// config.options.txtUploadLogMaxLine :
// -1 : no limit
// 0 : no Log lines but UploadLog is still in place
// n : the last n lines are only kept
// NaN : no limit (-1)
bidix.UploadLog = function() {
if (!config.options.chkUploadLog)
return; // this.tiddler = null
this.tiddler = store.getTiddler("UploadLog");
if (!this.tiddler) {
this.tiddler = new Tiddler();
this.tiddler.title = "UploadLog";
this.tiddler.text = "| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |";
this.tiddler.created = new Date();
this.tiddler.modifier = config.options.txtUserName;
this.tiddler.modified = new Date();
store.addTiddler(this.tiddler);
}
return this;
};
bidix.UploadLog.prototype.addText = function(text) {
if (!this.tiddler)
return;
// retrieve maxLine when we need it
var maxLine = parseInt(config.options.txtUploadLogMaxLine,10);
if (isNaN(maxLine))
maxLine = -1;
// add text
if (maxLine != 0)
this.tiddler.text = this.tiddler.text + text;
// Trunck to maxLine
if (maxLine >= 0) {
var textArray = this.tiddler.text.split('\n');
if (textArray.length > maxLine + 1)
textArray.splice(1,textArray.length-1-maxLine);
this.tiddler.text = textArray.join('\n');
}
// update tiddler fields
this.tiddler.modifier = config.options.txtUserName;
this.tiddler.modified = new Date();
store.addTiddler(this.tiddler);
// refresh and notifiy for immediate update
story.refreshTiddler(this.tiddler.title);
store.notify(this.tiddler.title, true);
};
bidix.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir, backupDir) {
if (!this.tiddler)
return;
var now = new Date();
var text = "\n| ";
var filename = bidix.basename(document.location.toString());
if (!filename) filename = '/';
text += now.formatString("0DD/0MM/YYYY 0hh:0mm:0ss") +" | ";
text += config.options.txtUserName + " | ";
text += "[["+filename+"|"+location + "]] |";
text += " [[" + bidix.basename(storeUrl) + "|" + storeUrl + "]] | ";
text += uploadDir + " | ";
text += "[[" + bidix.basename(toFilename) + " | " +toFilename + "]] | ";
text += backupDir + " |";
this.addText(text);
};
bidix.UploadLog.prototype.endUpload = function(status) {
if (!this.tiddler)
return;
this.addText(" "+status+" |");
};
//
// Utilities
//
bidix.checkPlugin = function(plugin, major, minor, revision) {
var ext = version.extensions[plugin];
if (!
(ext &&
((ext.major > major) ||
((ext.major == major) && (ext.minor > minor)) ||
((ext.major == major) && (ext.minor == minor) && (ext.revision >= revision))))) {
// write error in PluginManager
if (pluginInfo)
pluginInfo.log.push("Requires " + plugin + " " + major + "." + minor + "." + revision);
eval(plugin); // generate an error : "Error: ReferenceError: xxxx is not defined"
}
};
bidix.dirname = function(filePath) {
if (!filePath)
return;
var lastpos;
if ((lastpos = filePath.lastIndexOf("/")) != -1) {
return filePath.substring(0, lastpos);
} else {
return filePath.substring(0, filePath.lastIndexOf("\\"));
}
};
bidix.basename = function(filePath) {
if (!filePath)
return;
var lastpos;
if ((lastpos = filePath.lastIndexOf("#")) != -1)
filePath = filePath.substring(0, lastpos);
if ((lastpos = filePath.lastIndexOf("/")) != -1) {
return filePath.substring(lastpos + 1);
} else
return filePath.substring(filePath.lastIndexOf("\\")+1);
};
bidix.initOption = function(name,value) {
if (!config.options[name])
config.options[name] = value;
};
//
// Initializations
//
// require PasswordOptionPlugin 1.0.1 or better
bidix.checkPlugin("PasswordOptionPlugin", 1, 0, 1);
// styleSheet
setStylesheet('.txtUploadStoreUrl, .txtUploadBackupDir, .txtUploadDir {width: 22em;}',"uploadPluginStyles");
//optionsDesc
merge(config.optionsDesc,{
txtUploadStoreUrl: "Url of the UploadService script (default: store.php)",
txtUploadFilename: "Filename of the uploaded file (default: in index.html)",
txtUploadDir: "Relative Directory where to store the file (default: . (downloadService directory))",
txtUploadBackupDir: "Relative Directory where to backup the file. If empty no backup. (default: ''(empty))",
txtUploadUserName: "Upload Username",
pasUploadPassword: "Upload Password",
chkUploadLog: "do Logging in UploadLog (default: true)",
txtUploadLogMaxLine: "Maximum of lines in UploadLog (default: 10)"
});
// Options Initializations
bidix.initOption('txtUploadStoreUrl','');
bidix.initOption('txtUploadFilename','');
bidix.initOption('txtUploadDir','');
bidix.initOption('txtUploadBackupDir','');
bidix.initOption('txtUploadUserName','');
bidix.initOption('pasUploadPassword','');
bidix.initOption('chkUploadLog',true);
bidix.initOption('txtUploadLogMaxLine','10');
// Backstage
merge(config.tasks,{
uploadOptions: {text: "upload", tooltip: "Change UploadOptions and Upload", content: '<<uploadOptions>>'}
});
config.backstageTasks.push("uploadOptions");
//}}}
!טעות נפוצה
;כמעט תמיד מתרגמים ל"מודאג", אבל זה לחלוטין לא מדויק.
בדיבור השוטף באנגלית זה תקף גם אם אתה ''מודאג או נסער, עצוב או כועס.''
!!!קרדיטים
ucandoit (מתרגמים פרטיים)
[img[http://imagizer.imageshack.us/v2/640x480q90/22/bs88.png]]
~VisualSubSync מאפשרת סנכרון והתאמה מדוייקים של כתוביות לפי מה שרואים ושומעים (!), ולא רק לפי מה ששומעים, כמו בתוכנות הסנכרון הקיימות (ראו בתמונה).
המדריך הוא בעברית, כתוב בשפה מאד פשוטה ומובנת, וכולל תמונות-מסך עם הסברים מלאים.
תודות רבות ל-~CaTcH22 מצוות אקסטרים על הכנת המדריך המעולה הזה!
[[להורדה!|https://drive.google.com/file/d/0B1eYuR_vf-F_WjF3NFRkTzlkTlk/edit?usp=sharing]]
!טעות נפוצה
להמתין למישהו
!תרגום נכון
לשרת מישהו
!!!קרדיטים
אלמוני_פלמוני (מתרגמים פרטיים)
;הנה כמה מהטעויות שאני נתקל בהן שוב ושוב בלא מעט תרגומים ובכלל.
!ותשכרו את זה טוב טוב...
;זה שנותן את הרשות לעשות שימוש ברכושו בתמורה לתשלום הוא המשכיר, זה שמשלם לו תמורת הזכות הזו הוא השוכר.
:לכן - "שכרתי (__ולא__ השכרתי) דירה ברמת-אביב במחיר מציאה!"
;הערה :
{{{
כמו שוכר/משכיר יש גם: שואל/משאיל, לווה/מלווה
}}}
!בכנות כן...
;כנות בצורת זכר יש לכתוב ''כן'' __ולא__ ''כנה''.
:לכן - "הוא היה אדם __כן__".
!אם אין אני לי עם לי
אם - מלת תנאי
עם - יחדיו
:לכן - "__אם__ אלך יחד __עם__ אחי לקולנוע נקבל הנחה במחיר הכרטיס."
!אלא מה, אלה הם
אלא - לרוב בא לציין ניגוד או התנייה הפוכה לחלק המשפט שקדם לו.
אלה - צורת הריבוי של זה או זאת.
:לכן - "ו__אלה__ הם שבטי ישראל" - "לא נתקיף, __אלא__ אם כן נותקף בעצמנו."
!לא - לו
לו - בשבילו, עבורו, בעבורו, כלפיו, אליו, מצדו, לגביו
לא - לא, אין, ההיפך מהן; איסור, מניעה, עיכוב, התנגדות
;למשל:
:__לא__ בא לי לעזור __לו__!
----
בעברית ''לא שומרים מישהו ברצועה'' אלא ''מחזיקים אותו קצר''.
לא שואלים "האם...?" בתחילת כל שאלה בשיחה שוטפת.
בעברית ''שולחנות לא נערכו'' ו''מילים לא נאמרו'' אלא ''ערכו שולחנות ואמרו מילים''. למעט אם מדובר בסוג של שירה- השימוש בבניינים סבילים הוא די נדיר.
בעברית ''לא לוקחים החלטה'' אלא ''מקבלים אותה''.
גם תמונה אין צורך לקחת, פשוט ''מצלמים''...
בעברית לא שואלים כל הזמן "הלא כן?", אלא אם את המורה שושנה מכיתה י"א.
המילה "תריסרים" אינה צורת ריבוי מקובלת, ''עשרות'' - לעומתה - כן. גם את חצי-תריסר עדיף במידת האפשר להשאיר לתרגום של ספרי אניד בליטון משנות השמונים.
Guys זה גם ''בנות'', man זה לפעמים "אחי".
ו- Call הוא לפעמים להתקשר, לפעמים לקרוא, לפעמים להחליט ולפעמים לדווח בקשר.
;נתקלתי במשפט כזה:
:"קראה לו מיד וקיבלה את המשיבון שלו", כשהתרגום היה צריך להיות: "היא התקשרה אליו מיד והגיעה למשיבון שלו".
!!!קרדיטים
~StringTheory (מתרגמים פרטיים)
ucandoit (מתרגמים פרטיים)
אלמוני_פלמוני (מתרגמים פרטיים)
lea (מתרגמים פרטיים)
There are plenty of really useful guides around. They include:
*Jeremy Harper's [[TiddlyWiki Tutorial|http://www.blogjones.com/TiddlyWikiTutorial.html]]
*Jim Ventola's [[TidHelp|http://tidhelp.tiddlyspot.com/]]
* Dave Gifford's [[TiddlyWiki for the Rest of Us|http://www.giffmex.org/twfortherestofus.html]]
* Morris Gray's [[TW Help - TiddlyWiki help file for beginners|http://tiddlyspot.com/twhelp/]]
* Dmitri Popov's [[TiddlyWiki quick reference card|http://nothickmanuals.info/doku.php/cheatsheets]]
* Screencasts from [[JimVentola|http://faculty.massasoit.mass.edu/jventola/videocasts/tidhelp2/tidhelp2.html]] and [[LeonKilat|http://max.limpag.com/2006/09/07/using-a-tiddlywiki-a-video-guide/]].
There is a community [[documentation wiki|http://www.tiddlywiki.org/]], including a [[FAQ|http://www.tiddlywiki.org/wiki/TiddlyWiki_FAQ]]. And you can join the [[support forum|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help. Don't be put off if you notice some of the other questions are about way more advanced topics, just dive in, the people are friendly and answer quickly.
אתר זה נועד לסייע למתרגמים באשר הם באמצעות @@''התאמה אישית''@@ של כלים ואמצעים לצורך יצירת תרגומים ראויים ומהנים למען הקהילה כולה!
!בקשות, הצעות, התרשמויות, טענות וכל העולה על דעתכם - נא להפנות למשתמש StringTheory בפורום אקסטרים :
http://www.extremesubs.org/
מדריך לשימוש באתר יועלה בקרוב.
!טעות נפוצה
הרבה מתרגמים, גם הותיקים שבהם, נוטים לדייק באופן מרגיז ודי מגוחך בהמרת יחידות מרחק/משקל
ומפספסים בכך לחלוטין את הפואנטה.
;לדוגמא:
:"The enemy is 30 miles away of us"
;לא יתורגם ל:
:"האוייב מרוחק 48 ק"מ מאיתנו",
;אלא ל:
:"האוייב מרוחק 50 ק"מ מאיתנו".
!!!קרדיטים
mojo (מתרגמים פרטיים)
@@font-size:120%;''//__ת ו כ ן - ה ע נ י י נ י ם__//''@@
<<showtoc>>
!"במידה ו", "במקרה ו", "מאחר ו"
הצורות "במידה ו", "במקרה ו", "מאחר ו", "היה ו" וכו אינן נכונות. מילית הקישור היחידה שנגמרת ב-"ו" בעברית תיקנית הינה "הואיל ו". ניתן להחליף את המילים ב-"במידה ש", "מאחר ש", "במקרה ש", או פשוט ב-"אם" וב-"כי" ובתחליפיהן.
אינני בטוח אם גם הצורה "היה ש" תקינה בעברית.
!"למה" כדי לשאול "מה הסיבה?"
משמעות מילית השאלה "למה" היא "לשם מה" או "לאיזו תכלית". אין להשתמש בה כדי לשאול "מה הסיבה". כדי לשאול "מה הסיבה" רצוי להשתמש ב"מדוע". (זאת בניגוד לשפות אחרות בהן יש מילות שאלה משותפות לשני המקרים.)
!"בגלל ש", "למרות ש"
הצורה "למרות ש" איננה נכונה בעברית. תחליפים לה הן הצורות "אף ש", "אף על פי ש", "למרות העובדה ש", "על אף העובדה ש", וכיו"ל.
++++*כמו-כן, גם "בגלל ש" איננה נכונה . ניתן להשתמש במקומה ב"מכיוון ש", "מפני ש", "היות ש", "הואיל ו", "מאחר ש", או פשוט "כי".===
!''המין של מספרים''
המספרים עד עשר במין זכר נגמרים ב-"ה" ("שלושה", "שבעה"), ובמין נקבה, לא נגמר ב-ה ("שלוש", "חמש"). בין 11 ל19- המספרים מופיעים בהטיית מינם המקורי בספרת היחידות בתוספת "עשר" לזכר, ו-"עשרה" לנקבה.
המספרים העגולים מעל לעשרים הינם ניטרליים למין, אך יש לזכור להטות את החלקים שהם מתחת לעשרים של מספרים מעל לעשרים בהתאם למין של העצם הנספר ("שלוש מאות ותשעה ספרים", "מאתיים ושבע-עשרה מחברות").
הטיית העצם ביחיד במקום ברבים אפשרית רק למספרים מ11- עד 20, או במספרים עגולים (1-9 ואחריו אפסים). כך ש"חמישה שקל" (או גרוע מכך "חמש שקל"), או "מאתיים וחמישה שקל" אינן אפשריות.
!''"כמובן ש", "כנראה ש" וכו''
צורות כגון "כנראה ש", "כמובן ש", וכו אינן נכונות. במקומן יש להשתמש או ב-"נראה שהילד הלך לגן", "מובן שיש בזה הגיון.", או ב-"כמובן, יש בזה הגיון.", ו-"כנראה, הילד הלך הגן.".
!''"להיכן", "לאיפה"''
אין להוסיף אותיות בכל"ם ("ל", "מ") למילות השאלה "היכן" או "איפה". כך שהצורות "להיכן", "לאיפה", "מהיכן", ו-"מאיפה" אינן נכונות. יש במקום זאת להשתמש במילית השאלה "אין". "לאן אתה הולך?", "מאין אתה בא?" וכן הלאה.
!''"לאן ש"''
אין להשתמש במילית שאלה בתור פסוקית מקום. כך שהמשפטים "לאן שאני הולך, הלכו רבים כבר לפני.", "כדאי להיות איפה שאין הרבה אנשים." אינן נכונות. יש להשתמש במקום זאת ב"למקום ש", "מהמקום ש". "למקום שאיליו אני הולך...", "כדאי להיות במקום שאין הרבה אנשים".
++++*ראוי לציין שהצורות "להיכן ש", "מאיפה ש" וכו בהקשר הזה הן, על אחת כמה וכמה, לא נכונות. (לאור מה שנאמר בתיקון הקודם).===
!''"כמה" במקום "מספר"''
אין לומר "לקחתי כמה תפוחים", משום ש-"כמה" הינה מילית שאלה. יש לומר "לקחתי מספר תפוחים".
!''ה-הידיעה בסמיכות''
בסמיכות ה-הידיעה באה על הסומך (החלק השני) ולא על הנסמך (החלק הראשון). משמעות הדבר היא שאין לאמר "ראיתי את הראשי-ממשלות", אלא "ראיתי את ראשי-הממשלות". אם יש מספר סמיכויות יש לשים את ה'-הידיעה על הסומך האחרון. ("ראיתי את ראשי-ממשלות-מדינות-הגבול".)
!''"אם" לעומות "אילו" ו-"לו"''
אין להשתמש במילית התנאי "אם" עבור פסוקיות תנאי בזמן עבר. (פסוקיות זמן היפותטיות). במקומה, יש להשתמש ב-"אילו" או ב-"לו". כך שאין לאמר "אם הייתי עשיר, הייתי קונה לעצמי בית חדש" אלא "אילו הייתי עשיר, הייתי קונה לעצמי בית חדש".
[[רגע של עברית]]
!!!קרדיטים
אלמוני_פלמוני (מתרגמים פרטיים)
כשהמילה Few מופיעה לבד במשפט, ללא תוספות, פירושו שאין כמעט פריטים שעונים על הכלל. בשונה מהמילה "מעט" בעברית, כאן התרגום הנכון -
:נדיר, כמעט ואין וכו'.
:A Few - מעט, המעט שבמעט, מעט-מזעיר.
:Quite a few - לא מעט ואפילו הרבה.
!!!קרדיטים
Demoiselle (משתתפים)
@@font-size:120%;
:''__נ י ו ו ט - ב ד ף__''@@
<<showtoc>>
!מילונים מקוונים
|CssClass|k
|!שם|!תיאור|!כתובת|
|~BabelFish | אתר תרגום – רב-שפות |http://babelfish.yahoo.com/ |
|~Merriam-Webster |מילון מקוון|http://www.merriam-webster.com/|
|The Free Dic.| מילון מקוון| http://www.thefreedictionary.com/|
|~WordRefrence|אוסף מילונים מקוונים |http://www.wordreference.com/|
|בבילון| מילון מקוון |http://short.urls.co.il/8tc01m|
|מורפיקס| מילון מקוון |http://morfix.mako.co.il/default.aspx|
|מילון| ניבים - מילון ניבים ומטבעות לשון |http://www.nivon.co.il/dictionary.asp|
|השפה העברית| פירושים, ידע כללי בשפה וכו' |http://www.safa-ivrit.org/|
|onelook|מילון מקוון שמשלב תוצאות ממילונים אחרים ברשת|http://www.onelook.com/|
!מילוני עגות (סלנג)
|CssClass|k
|!שם|!תיאור|!כתובת|
|Online-sleng Dic |מילון סלנג מקוון |http://onlineslangdictionary.com/|
|Peevish |מילון לסלנג בריטי |http://www.peevish.co.uk/slang|
|סלנג קוקני|לסלנג עם גוון יותר קוקני (מזרח לונדון )|http://www.effingpot.com/slang.shtml|
|Urban Dic. |מילון סלנג מקוון |http://www.urbandictionary.com/|
!מילוני נישה
|CssClass|k
|!שם|!תיאור|!כתובת|
|radiolabs|מילון לקודים משטרתיים|http://www.radiolabs.com/police-codes.html|
|crime.about.com|מילון לז'רגון משטרתי|http://crime.about.com/od/glpolice/|
|טרמינולוגיה משטרתית|הסברי מונחים שקשורים לנושא|http://en.wikipedia.org/wiki/Law_enforcement_jargon|
|מילון ליידיש|מילון לשפת היידיש|http://www.iddish.co.il/Dictionary.aspx|
|hmsrichmond|הסבר למושגים ולסלנג שגור בצי הימי|http://www.hmsrichmond.org/dict_t.htm|
!כלים ומדריכי-תוכנות
|CssClass|k
|!שם|!תיאור|!כתובת|
|SW|התוכנה הכי נפוצה לתרגום |http://www.urusoft.net/download.php?id=sw&mirror=1|
|SW|קישור 2 |http://www.urusoft.net/download.php?id=sw&mirror=2|
|Video Help |אתר כלים ומדריכים |http://www.videohelp.com/|
|[[VSS]]|מדריך בעברית |https://drive.google.com/file/d/0B1eYuR_vf-F_WjF3NFRkTzlkTlk/edit?usp=sharing|
|VSS|תוכנה לסנכרון ויזואלי |http://short.urls.co.il/izoouz|
|Universal-subs| פרוייקט קוד-פתוח לתרגום מקוון| http://www.universalsubtitles.org/en/|
|^^1^^Lingoes|תואם חינמי לבבילון|http://www.lingoes.net/|
|^^1^^Golden-dict|תואם חינמי נוסף לבבילון|http://www.lingoes.net/|
|Translator toolkit|כלי-תרגום מבית גוגל|http://translate.google.com/toolkit/list?hl=en#translations/active|
#פירוט על תוכנות Lingoes וכן Golden-dict ניתן למצוא בקישור [[שכאן!|http://hwzone.co.il/community/threads/508319-%D7%A9%D7%AA%D7%99-%D7%90%D7%9C%D7%98%D7%A8%D7%A0%D7%98%D7%99%D7%91%D7%95%D7%AA-%D7%97%D7%99%D7%A0%D7%9E%D7%99%D7%95%D7%AA-%D7%9C-Babylon-Translator#.UyCTVc7xHMA]]
!מדריכי-תרגום וקבצי-עזר
|CssClass|k
|!שם|!תיאור|!כתובת|
|מדריך למתרגמים| מדריך למתרגמים מתחילים וגם ותיקים | http://www.qsubs.net/index.php?showtopic=44907|
|הברית החדשה בעברית| להורדה PDF |http://f2h.nana10.co.il/bmln5m8vx0s5#|
!פורומים של צוותי תרגום
|CssClass|k
|!שם|!תיאור|!כתובת|
|צוות EXTREME| הפורום של צוות אקסטרים ומתרגמים פרטיים | http://www.extremesubs.org/|
|צוות QSUBS| הפורום של צוות QSUBS| http://www.qsubs.net/|
|צוות HDSUBS| הפורום של צוות HDSUBS|http://www.hdsubs.org/|
|צוות SUBSWAY|הפורום של צוות SUBSWAY|http://subsway.org/|
!!!קרדיטים
~DrSub ( מצוות EXTREME)
rodneymckay ( מצוות EXTREME)
Godfather (מצוות QSUBS)
~StringTheory (מתרגמים פרטיים)
~Mad_Clown (מתרגמים פרטיים)
Pippo (מתרגמים פרטיים)
Heisenberg (משתתפים)
ucandoit (מתרגמים פרטיים)
''@@color(red):מאת : אלמוני_פלמוני (מתרגמים פרטיים)@@''
!טיפ מס' 1:
@@font-size:120%;''אל תתרגם לשפה שאני קורא לה "תרגומית", תרגם לעברית.''@@
למה הכוונה? תבין את מה שהדמות אומרת בהקשר שבה היא אומרת
את זה, ונסה לחשוב איך יהיה טבעי לדמות להגיד את זה בעברית בסיטואציה הנתונה.
תרגומים רבים סובלים מתחביר מאונגלז (בהשפעת המקור), ומעברית לא מתאימה
בסגנון ובמשלב לדמות ולמצב. אם מתרגמים דיאלוג, התרגום צריך להישמע כדיאלוג
טבעי בעברית. אם מתרגמים הרהורים של דמות או דברים שהדמות קוראת מהכתב,
השפה בד"כ אינה בסגנון דיבורי, והתרגום צריך להתאים לזה.
;למשל,
:אם מישהו אומר (בשיחה רגילה): I don't want that
;עדיף לתרגם
:"אני לא רוצה את זה" (ולא "אינני רוצה בזאת").
לעומת זאת, אם מישהו מקריא ממסמך או ממכתב שנוסחו בשפה "גבוהה" משפט כמו: We're not interested in...
;עדיף לתרגם:
:"איננו מעוניינים ב..."
;דוגמה נוספת :
לא מדובר בטעות, אבל אצלי זה מקפיץ פיוזים - חברתו של דין מתרתחת עליו, ואומרת לו לפי התרגום :
:"אתה כזה מפסידן! (לוזר)"
התרגום תקין, ''המשלב לא!''
הייתי מתרגם את זה באופן שבו מדברים אצלנו בעברית (זה מה שאנחנו כמתרגמים אמורים לעשות, לא?!) :
:"אתה כזה אפס!"
או
:"אתה ממש אפס!"
@@font-size:120%;''בקיצור - תנו לדמויות הדוברות לדבר כמו בני-אדם, ולא כמו דקלומים של ביאליק או של האקדמיה!''@@
!טיפ מס' 2:
@@font-size:120%;''שכלך וגוגל הם ידידיך הטובים, השתמש בהם.''@@
אם משהו בדברים לא נראה לך הגיוני בסיטואציה הנתונה, אולי לא הבנת, ויש שם משהו שלא צריך
להתפרש מילולית, חפש בגוגל את הביטוי שגורם "לבעיה", רוב הסיכויים שתמצא תשובה.
;דוגמה:
:We've heard from the peanut gallery
מחיפוש בגולל של "peanut gallery" אפשר ללמוד שמדובר בדימוי. "יציע הבוטנים" זה היציע שממנו הקהל זורק בוטנים
על השחקנים כשהוא לא אוהב את ההצגה.
הצעה לתרגום שיישמע טוב בעברית, ועדיין ישמור על הדימוי המקורי:
:"שמענו מהקהל הזועם ביציע".
!טיפ מס' 3:
אם נתקלת בדברים שאתה מתקשה להבין ולתרגם במהלך הסרט, ולא הצלחת למצוא פיתרון שמספק אותך, אל תיתקע עליהם,
תמשיך בצפיה, ואולי הם יתבהרו בהמשך. בכלל, לא מומלץ לתרגם סרט שעוד לא ראית. לפני שתתחיל לתרגם, צפה בסרט ללא תרגום.
!טיפ מס' 4:
גם אם בתרגום אתה נעזר בכתוביות באנגלית, תקשיב לנאמר! לפעמים המתמלל טועה! במיוחד כשאתה מתעתק שמות, שים
לב איך מבטאים את השם, ותכתוב אותו בעברית לפי איך שאומרים אותו . מביך לראות תרגומים שבהם אין שום קשר בין השם
ששומעים בסרט לבין הצורה שהמתרגם בחר לכתוב אותו (למשל כי מדובר בשם צרפתי, והמתרגם לא מכיר את כללי הקריאה בצרפתית...)
!טיפ מס' 5:
לפני שאתה משחרר את התרגום לרשת, צפה שוב בסרט מההתחלה עד הסוף עם התרגום שלך (הגהה של קובץ הטקסט
לגילוי שגיאות כתיב והקלדה אינה מספיקה!). בצפיה החוזרת סביר שתעלה על טעויות שלא הבחנת בהן קודם ועל ניסוחים צורמים
שלא שמת אליהם לב בזמן התרגום. אין מה לעשות, אם אתה רוצה שיעריכו את התרגומים שלך, אתה צריך להשקיע זמן...
!ראו גם...
[[מדריך למתרגמים חדשים וגם ותיקים]]
!!!קרדיטים
;אלמוני_פלמוני (מתרגמים פרטיים)
;~StringTheory (מתרגמים פרטיים)
!טעות נפוצה
הצורה המקוצרת עדיפה ברוב המקרים, והארוכה מיותרת.
;למשל:
:במקום - "אני אגיד", "אתה תגיד לו"
;עדיף:
:"אגיד", "תגיד לו"
!!!קרדיטים
~StringTheory (מתרגמים פרטיים)
~DrSub ( מצוות EXTREME)
//__''[[מ ל י ם]]''__//
//__''[[ב י ט ו י י ם]]''__//
//__''[[ע ג ה (סלנג)]]''__//
//__''[[ט ע ו י ו ת - נ פ ו צ ו ת]]''__//
הנה המדריך המצויין של ביג-גיא, חבר צוות אקסטרים לשעבר.
!המדריך המלא למקשים החמים בSubtitle workshop:
''מקשים "חמים" שימושיים:''
CTRL+U..................מצב תרגום (החלפה בין מצבים)
CTRL+O..................פתיחת מקור
CTRL+SHIFT+O......פתיחת תרגום
CTRL+S..................שמור מקור
CTRL+SHIFT+S......שמור תרגום
CTRL+P..................פתח סרט
CTRL+SPACE.........התחל/עצור סרט
ALT+LEFT...............הרץ סרט אחורה
ALT+RIGHT.............הרץ סרט קדימה
INS.........................הכנס כתובית חדשה
SHIFT+INS..............הכנס כתובית חדשה לפני כתובית נוכחית
CTRL+A..................בחר את כל הכתוביות
CTRL+SHIFT+H.......הזז במילישניות: +100
CTRL+SHIFT+N.......הזז במילישניות: +100
CTRL+SHIFT+V.......חצייה מהירה של כתובית לשתיים (חוצה גם מלל)
CTRL+K..................מאחד כתוביות נבחרות- זמנים + מלל
CTRL+E..................מפצל שורה ארוכה לשתיים. בחירת אורך השורה המקסימלי נעשה בהגדרות->Advanced
CTRL+SHIFT+F.......תקן פיסוק
CTRL+SHIFT+M......סמן כתובית נבחרת (מבליט את הכתובית- נוח כדי לדעת לזהות אותה בהמשך)
CTRL+SHIFT+A......מבטל סימון כתובית
SHIFT+ENTER........יורד שורה +מסמן את המלל שלה
CTRL+ENTER.........עולה שורה + מסמן את המלל שלה
ALT+C....................קובע זמן התחלה לכתובית
ALT+V....................קובע זמן סיום לכתובית
ALT+Z....................התחל כתובית
ALT+X....................סיים כתובית
LFT|ALT+ENTER.....מעביר את הסרט לכתובית הנבחרת
CTRL+F..................מצא
CTRL+R..................מצא והחלף
!!''מדריך קצר לתרגום משמיעה של זאזי+ שדרוג שלי:''
1.יוצרים כ-100 שורות ריקות (לחיצה רצופה על INS).
2.מבטל את הכפתור שגורם לתרגום לקפוץ שורות לפי הזמנים.
3.מתחיל לתרגם בכיף.
4.תוך כדי תרגום - המעבר בין השורות רק ע"י המקלדת. פשוט לא נוגעים בעכבר - (כשהסמן נמצא בתיבה של התרגום) לחיצה על על SHIFT+ENTER מורידה אתכם שורה ומסמנת את המלל, לחיצה על DELETE תמחק את ה"כתובית שלא תורגמה".
5.כשרוצים לסנכרן כמות מסויימת של שורות, או את כולן - מתחילים להריץ את הסרט, הסמן על שורה מספר אחד, אגודל שמאל על ALT (ושם הוא ישאר לחוץ כל הזמן), אצבע ימין על C, והאמה הימנית ("האצבע המשולשת") על V. (שמאליים יכולים לפנות אלי בפרטי. לציין "עבור תמיכה בשמאליים"). מבט תקיף קדימה ויאללה מעכשיו לא עוצרים את הסרט, כשתגיעו למשפט האחרון הכל יהיה מסונכרן. פירוט בנספח א'.
!!''נספח א'''
לחיצה על ALT+C מציינת לו להתחיל להציג את השורה, לחיצה נוספת על ALT+V מציינת לסיים את השורה. ברגע זה התוכנה לבד עוברת לשורה מספר 2! אין צורך לעצור את הסרט, רק להיות מוכנים עם האצבע ולסמן לו "התחל" ו"סיים" עד שמגיעים לסוף. בגדול אם אין תיקונים באמצע אז זה לוקח לסנכרן בערך כמו שזה לוקח לצפות, ועל הדרך עושים גם הגהה. (מומלץ לעשות הגהה חוזרת).
יתרונות - הכי טוב להחליט תוך כדי תרגום מתי כדאי לעבור שורה, ומתי אפשר להשאר. אם מישהו אחר עשה לך את השלד אז אתה בכלל מוגבל למה שהוא החליט וזה אף פעם לא אותו הדבר.
הסנכרון קל פשוט ומהיר, אסור בהחלט לגעת בעכבר תוך כדי תרגום וכאן נמצא החיסכון האמיתי של הזמן, עושים הגהה נוספת על הדרך (בכל זאת זה תרגום משמיעה), ולא עושים מעניין השלד עוד "עבודה", זה כמו חלק נוסף של מלאכת התרגום.
!!''תוספות:''
SHIFT+ALT+T יוצר אפקט הקלדה. כל כמה מאיות שניה נוספת אות. כמו בסרטים.
SHIFT+ALT+1,2,3 יוצר אפקט הבהובים לכתובית. מחלק לפרקי זמן גדלים (1-3)
קפסלוק דלוק, שיפט+ כל שורת הספרות (ושאר המקשים שבה)- מנקד את האות עליה נמצא הסמן. נוח כשיש מילה לא מובנת.
תהנו ותזכרו- לא להשתמש בעכבר!
כל הזכויות שמורות לגיא.
''@@color(red):מאת : Godfather (מצוות QSUBS)@@''
*@@font-size:130%;''//__ת ו כ ן - ה ע נ י י נ י ם__//''@@
<<showtoc>>
[[קישור למדריך המלא!|http://www.qsubs.net/index.php?showtopic=44907]]
----
;אז כדי לחסוך לעצמנו ולא לחזור פעמים רבות על אותם הכללים ולענות על אותן השאלות, ריכזנו מדריך קצרצר (כבר לא כ"כ קצר) עם כל הדברים שהמתרגם המתחיל צריך לדעת.
באופן טבעי, חלק מהדברים ייראו לחלקכם טריוויאליים וברורים מאליהם.
המדריך נכתב (בלשון עבר והווה) תוך כדי תהליכי בחינה וחניכה של מתרגמים חדשים, ומקובצים בו עיקרי הבעיות והטעויות שיש למתרגמים חדשים. ''@@color(red):הקריאה מומלצת גם למתרגמים ותיקים יותר.@@''
!איך מתחילים?
מורידים את התוכנה [[Subtitles Workshop, v2.51 |http://www.urusoft.net/download.php?lang=1&id=sw]](חינמית וחוקית).
לא מתרגמים עם Notepad. לא משנה כמה יעיל וקל זה נראה לכם, זה לא.
//''מתרגמים אך ורק בצמוד לווידאו! לעולם אין לתרגם רק לפי הכתוביות באנגלית!''//
פותחים את Subtitles Workshop, טוענים את הכתוביות באנגלית ואת הסרט ו... מתרגמים.
חלק מהמתרגמים משתמשים במצב תרגום (Ctrl+U).
!מבנה כתוביות
בכתובית אחת יהיו שורה או שתיים. לעולם לא יהיו כתוביות עם שלוש שורות.
שורה בודדת תכיל עד 32 תווים.
במידה וזה מתאפשר מבחינת מס' התווים בשורה, מומלץ לרדת שורה בסוף משפט או חצי משפט כדי להקל על רצף הקריאה של הצופה, גם אם ייווצרו שורות לא שוות. למשל,
;עדיף:
:@@בוא, ג'וני,
כולנו מחכים לך בחדר האוכל.@@
;מאשר:
:@@בוא, ג'וני, כולנו מחכים
לך בחדר האוכל.@@
!פיסוק
יש להקפיד על פיסוק נכון ומדויק. נקודה בסוף משפט, פסיקים כשצריך וכו'.
טעות נפוצה היא לכתוב פסיק או נקודה בסוף כתובית גם אם המשפט לא נגמר וממשיך בכתובית הבאה. כתובית יכולה להסתיים בלי סימן פיסוק כלשהו אם המשפט ממשיך בכתובית הבאה.
!!שלוש נקודות...
כאשר משפט נקטע באמצע או שיש הפסקה בין שני חצאי משפט, יש להשתמש ב-... (ולא ב-"-" כמו הרבה כתוביות באנגלית).
;דוגמאות:
:@@רק רציתי להגיד שלדעתי זה...
-סתום ת'פה!
אני חושב ש... אין לי מה להגיד.@@
(אם ההפסקה בין חצאי המשפט היא קצרה אז אפשר להסתפק בפסיק או אפילו לא להתייחס לזה).
!!מקף לציון החלפת דובר
;כאשר יש שני דוברים (ומעלה) בכתובית אחת, זה ייראה ככה:
:@@היי, מה שלומך?
-בסדר, הכל מצוין.
איך קוראים לך?
-יוסי, ולך? -ראומה.@@
המקף (-) יופיע רק אצל הדובר השני ומעלה באותה כתובית. שימו לב שבדוגמא השנייה ראומה היא גם הדוברת הראשונה וגם השלישית.
באופן כללי, רצוי שלא יהיו שלושה דוברים בכתובית אחת, אלא במקרים שמדברים מהר מאוד ואין מספיק זמן לפצל לכתוביות.
בכתוביות המכילות שני דוברים, מומלץ שכל אחד מהם יקבל שורה משלו, גם אם זה ייצור שורות לא שוות. כלומר,
;עדיף:
:@@שלום.
-היי, לא זיהיתי אותך! מה שלומך?@@
;מאשר:
:@@שלום. -היי, לא זיהיתי אותך!
מה שלומך?@@
בכתוביות אין להשתמש במקף כסימן פיסוק "רגיל", אלא רק לצורך:
*ציון דובר שני ומעלה (כפי שהסברתי כעת).
*סמיכות (על-טבעי, ראשי-תיבות, בית-ספר).
*שם (ג'יי-די, מרי-אליס).
*ראשי תיבות (די-אן-איי).
לא נשתמש במקף כסימן פיסוק, למשל במשפטים כמו הוא אמר לי - "בוא הנה", או אם תרצו - אין זו אגדה, אלא נשתמש בפסיק או בנקודותיים.
!!מרכאות (")
יש להשתמש במרכאות במקרים הבאים:
*1. שם של מוסד או מקום מסחרי.
;דוגמאות:
:למדתי בבית הספר "לינקולן".
:עבדתי בחברת "דאנדר מיפלין".
במקרים של מקומות ומוסדות מפורסמים, או מקומות ששמם חוזר פעמים רבות בסרט או בסדרה, ניתן לוותר על המרכאות (לפי שיקול דעת המתרגם).
;דוגמאות:
:נסענו לדיסנילנד.
:אני עובדת באן-בי-סי.
שמות של מקומות (ערים ומדינות) לא יופיעו במרכאות, גם אם מדובר בכפר נידח שאף אחד לא מכיר.
:אני גר במידלטאון, אלבמה ולא אני גר ב"מידלטאון", אלבמה.
*2. שם של חברה או מותג.
;דוגמאות:
:שתיתי חלב "תנובה" ושוקו "יטבתה".
גם כאן יש יוצאים מן הכלל, ואפשר לוותר במקרים של מוצרים מפורסמים כמו:
:אכלתי במקדונלד'ס.
:שתיתי קוקה קולה.
(לשיקול המתרגם)
*3. ציטוט.
;הציטוט יבוא בין מרכאות ולפניו יבוא פסיק.
:היא אמרה לי,
:@@"תראה, החיים די יפים".@@
במקרה שהציטוט הוא ארוך ומתפרס על יותר מכתובית אחת, כל כתובית תתחיל עם מרכאות ורק האחרונה תסתיים במרכאות.
;כלומר:
:@@ג'ון פתח את הספר והקריא בקול,
"בבקשה ממך, אישי הטוב,@@
<>
:@@"ראה לי מזל מן המובחר.@@
<>
:@@"ראה לי שאנשא בוקר אחד לשלושה מלכים
ואתאלמן משלושתם גם יחד.@@
<>
:@@"ראה את הנולד שאלד אחרי חמישים@@
<>
:@@"ושהיה זה ילד שאפילו הורדוס איש יהודה
יהגה לו יראת כבוד!"@@
*4. שם של סרט, שיר, תכנית טלוויזיה או יצירה כלשהי.
תמיד יופיע במרכאות, לא משנה כמה מפורסמת היצירה.
;דוגמא:
:ראיתי אתמול @@"כוכב נולד"@@, חתולה שנזרקת במדרגות נשמעת יותר טוב מהם.
!מספרים ואותיות באנגלית בכתוביות
לקורא הרבה יותר קל לקרוא טקסט רצוף והמספרים קצת קוטעים, גם אם לשבריר שנייה, את רצף הקריאה. בנוסף, מספרים לעיתים נוטים לשבש את התצוגה התקינה של הכתובית. לכן במקרים שהמספר כמילה יהיה נוח לקריאה, נכתוב אותו כמילה. למשל:
ארבעה אנשים, לא 4 אנשים.
ומצד שני, לא נסרבל את הצופה עם מפלצות כמו חמש מאות עשרים ושניים אנשים אלא נכתוב 522 אנשים. כלל האצבע הוא נורא פשוט - אם המספר הוא בן מילה אחת, נעדיף לכתוב בטקסט.
אם המספר הוא בן 4 ספרות ומעלה, חובה להשתמש בפסיק - 43,500 ולא 43500. הפסיק מסייע לקריאה מהירה של המספר, דבר הדרוש בכתוביות.
מסיבות טכניות הקשורות לעובדה שעברית נכתבת מימין לשמאל, מספר שייכתב בתחילת השורה, יוצג בתרגום בסופה (במקום "10 אנשים ראו אותי" יופיע "אנשים ראו אותי 10"). ניתן לסדר זאת כך:
בתחילת השורה (לפני המספר) יש להקיש על Ctrl+[. זה יוסיף תו בלתי נראה שהכיווניות שלו היא מימין לשמאל, וידאג שהשורה תיראה כפי שאנחנו רוצים. למעשה, זה בדיוק כמו לכתוב אות כלשהי בעברית לפני המספר, רק שאת התו הזה לא רואים.
ברוב הנגנים, שורות עם מספרים שייכתבו כך יוצגו נכון, אך יש נגנים שגם עם הטריק הנ"ל יציגו את השורה בצורה שגויה. לכן יש להשתדל שהמספר יהיה באמצע שורה, מוקף במילים (זה לא כלל ברזל, אך יש להשתדל).
!!אותיות באנגלית
מאותה סיבה של הפרעה לצופה וסיבוכים טכנים אפשריים כמו עם המספרים, אין להשתמש באותיות אנגליות בתרגום. במקום זה, כותבים את שם האות בעברית עם מקף בין אותיות. למשל - NBC תתורגם כ"אן-בי-סי".
!פיסוק הפוך
שפת הקודש נכתבת כאמור מימין לשמאל, והפורמט בו אנחנו עובדים (SRT) תומך בכתיבה משמאל לימין. לכן יש לסדר את הפיסוק שיהיה הפוך. מה זה אומר? פיסוק שאמור להופיע בסוף השורה (כמו נקודה) יצטרך להיכתב בתחילתה, ופיסוק שאמור להופיע בתחילת השורה (כמו "-" לציון החלפת דובר) ייכתב בסופה.
;לדוגמא, שורה שאמורה להיות מוצגת כך:
:@@חמיד, אפשר לאפה?
-ודאי, עשרה שקלים.@@
;צריכה להיכתב בקובץ כך:
:@@?חמיד, אפשר לאפה
.ודאי, עשרה שקלים-@@
ה-"?" שאמור לסיים את השורה הראשונה עובר לתחילתה.
ה-"-" שאמור להתחיל את השורה השנייה עובר לסופה.
סימני פיסוק באמצע השורה נשארים כפי שהם, ולאפות עולות עשרה שקלים רק בסרטים.
זה אמנם נראה הפוך, אבל כשהצופה יפעיל את הסרט עם הכתוביות הוא יראה את זה כמו שצריך ועם סימני הפיסוק במקומם הנכון. גם התצוגה ב-Subtitles Workshop תראה איך הכתובית תיראה בנגנים של ה"קליינטים" שלכם.
ניתן לכתוב מראש הפוך (פחות מומלץ), ואפשר להפוך את הפיסוק אוטומטית ב-Subtitles Workshop, עם המקשים Ctrl+Shift+F (שורה אחר שורה או הכל יחד).
שימו לב שלפעמים ההיפוך האוטומטי לא מושלם. סימני פיסוק בצמוד למקף מתפקששים וכך גם סוגריים,
;כלומר:
:@@מה הוא אמר?
-"שלום".@@
;בהיפוך אוטומטי יהפוך ל:
:@@?מה הוא אמר
."שלום-"@@
(בנגנים השורה השנייה תיראה לא טוב: "-שלום".)
סוגריים שיעברו היפוך אוטומטי יתחלפו ביניהם. (טקסט) לאחר היפוך אוטומטי יהפוך ל-)טקסט(.
רצוי לזכור את הדברים האלה ומלכתחילה לכתוב במקרים הספציפיים האלה הפוך, במקרים הנ"ל - לכתוב מראש "-שלום". ו-)טקסט(, ואז ההיפוך האוטומטי בסיום התרגום יסדר את זה כהלכה.
את ההגהה יש לבצע כשהפיסוק כבר במקומו ההפוך, כדי לוודא שאתם מתקנים ידנית את מעט סימני הפיסוק שהתפקששו (מה זה הגהה ומה עשיתם שזה מגיע לכם? בהמשך...)
!מה לתרגם ומה לא?
אין להיצמד לכתוביות באנגלית באופן מוחלט. יש דברים שיופיעו בכתוביות באנגלית ואין צורך לתרגם אותם, ויש דברים שלא יופיעו בכתוביות וכן צריך לתרגם אותם.
*1. טקסט שמופיע בווידאו ולא נאמר, כגון שלטים, יש לתרגם בצירוף מקף (-) לפני ואחרי הטקסט.
;לדוגמא:
:- בית ספר -
:- חלב "תנובה" -
:- לאחר יומיים -
לרוב, דברים אלו לא יופיעו בכתוביות באנגלית ולכן יש להוסיף שורה במקום הרלוונטי.
שימו לב שלא חייב לתרגם כל דבר שמופיע בשלט. לדוגמא, כדי להראות לצופים שסצנה מסוימת מתרחשת בבנק, תופיע בסרט תמונה של דלת או שלט הבנק שעשויים לכלול, מלבד את שם הבנק, גם את שעות הפתיחה שלו, כנהוג בבתי עסק רבים. שעות הפתיחה אינן רלוונטיות לסרט ולעלילה והפואנטה בצילום השלט היא אך ורק כדי להראות לנו לאן לוקחים אותנו, ולכן אין צורך לתרגם גם את שעות הפתיחה. דוגמא נוספת היא לוחיות רישוי שכוללות גם את שם המדינה. אם יוצרי הסרט בחרו להתמקד בלוחית רישוי מסוימת עם כיתוב מסוים, אין צורך לתרגם גם את שם המדינה כי היא ממילא חלק מובנה מלוחית הרישוי ולא הפואנטה בצילום הזה.
*2. קולות מוזרים כמו "אמממ", "הו", "אהה" וכאלה - אין לתרגם אלא אם הכרחי למשפט. ברוב המקרים זה לא הכרחי, אבל הנה דוגמא למצב שכן צריך להשאיר:
:@@את שמנה, אה?@@
(אפשר גם להפוך את ה"אה" ל"מה", לשיקולכם)
!ואם אני לא מבין?
לא משנה כמה האנגלית שלכם טובה, אי אפשר לתרגם משהו בהסתמך על האנגלית בלבד. לא כל דבר אפשר לתרגם באופן מילולי ולהעביר את המסר.
כאשר אתם נתקלים בשורות שנראות לכם לא מובנות או שאולי דורשות הבהרה מסוימת, פשוט חפשו את המושג. חיפוש טוב מתחיל בגוגל ולא באתר ספציפי, שכן גוגל בכל מקרה יציג את התוצאות הרלוונטיות ביותר, וזה כולל תוצאות מאתרים כמו Urban Dictionary, ויקיפדיה, מילונים רגילים וכו'.
!!ויקיפדיה
ויקיפדיה היא אחד הכלים החשובים ביותר עבור המתרגם. ויקיפדיה האנגלית מכילה ערכים אנציקלופדיים כמעט על כל דבר שניתן להעלות על הדעת, ומומלץ להשתמש בו כשאנחנו נתקלים בדברים שאיננו מכירים. האתר מספק לנו מידע אנציקלופדי ונוח לקריאה על מושא חיפושנו (זאת בניגוד לדפי אינטרנט אקראיים שלא תמיד יענו על מבוקשנו). אם קיים ערך בעברית לדבר שאותו אנו מחפשים, נמצא קישור אליו בעמודה השמאלית של הדף. שימו לב שאתם לא מסתמכים באופן מוחלט ועיוור על תרגום המונחים והשמות בוויקיפדיה העברית, אלא גם מפעילים שכל ישר. המילים "חמרמורת" או "חברת הזנק" אולי מתאימות לאנציקלופדיה, אבל אין ספק שבתרגום טוב יהיה כתוב "האנגאובר" ו"חברת סטארט אפ", כדברי פשוטי העם. בנוסף, שמות רבים מתורגמים\מתועתקים אצלם באופן לא נכון, כמו השחקנית סקרלט ג'והנסון ששם קרויה "יוהנסון", הגנגסטר אל קאפון שקרוי שם "קפונה", מובארק שקרוי שם "מובארכ" וכו'. בקיצור, להפעיל שיקול דעת ולא להסתמך באופן עיוור.
!!Urban Dictionary - מילון סלנג
מתרגמים רבים מתייחסים לאתר זה כאל מילון (שלא לומר תנ"ך) ועושים טעויות חמורות כתוצאה מכך. יש לזכור שזה לא מילון סטנדרטי אלא מילון שנכתב ע"י משתמשים, וככזה, העובדה שפירוש כלשהו כתוב שם לא הופכת אותו לנכון. לכן יש לשים לב ל-like ו-unlike שיש לצד הפירוש, ואם 100 אנשים לחצו על "down" ורק 10 על "up", סביר להניח שהפירוש לא נכון ואין להסתמך עליו. בנוסף, מעל הפירוש יש רשימה גדולה של מילים שחלקן קשורות או דומות למילה שחיפשנו וחלקן לא קשורות בכלל. אלו לא מילים נרדפות, אין לייחס אליהן חשיבות כלל ולהתייחס אך ורק לפירוש (אם הוא שווה משהו). שוב אדגיש - לפני החיפוש באורבן, חפשו בגוגל.
!!ביטויים
ביטויים רבים באנגלית מכילים מילים שמשתנות בהתאם לסיטואציה שבה משתמשים בביטוי. לדוגמא, "Bill rattled Emma's cage" (משמעות משפט זה הוא "ביל עיצבן את אמה").
את המילה "ביל" ניתן להחליף במילה "אני", "היא", "הוא" וכו', וכך גם את המילה "אמה". ולכן חיפוש של הביטוי בצורתו זו לא יביא אותנו אל הפירוש. כדי להגיע לפירוש, עלינו לפשט את הביטוי לצורתו הכללית ביותר, ולחפש (בגוגל, כמובן). במקרה הזה, הצורה הפשוטה של הביטוי תהיה "rattle cage" או "rattle someone's cage".
!!מילון אנגלי-עברי
אם בחרתם להתקין את תוכנת "בבילון", השתמשו בה במשנה זהירות. ישנן לא מעט טעויות וחוסר דיוק בגרסא העברית של המילון, ומומלץ מאוד שלא לסמוך באופן עיוור על הפירושים בעברית. כאשר אתם נתקלים במילה שלא שמעתם מעולם, הסתמכו יותר על הפירושים באנגלית שיש בבבילון (אנגלי-אנגלי) מאשר על הפירושים בעברית. מילון מומלץ יותר הוא מורפיקס.
נושא החיפוש והבדיקה הוא חלק קריטי מהתרגום, ובלעדיו לא ניתן להוציא תרגום טוב ולו לסדרה הקלה ביותר. אם אתם לא בטוחים שהבנתם את המשפט, אל תתרגמו "על עיוור" ותזרקו את הניחוש הכי טוב שלכם. חפשו.
גם אם יש לכם ספק קטנטן ונראה לכם שאתם די בטוחים במשמעות, אל תתעצלו לבדוק. כפי שאומרים - כשיש ספק, אין ספק. זה ימנע טעויות מביכות וגם יעשיר את אופקיכם.
@@font-size:120%;''כלל ברזל: אם אתם לא תבינו את המשפט, הקהל שלכם בטוח לא יבין אותו.''@@
!ניסוח
לאחר שהבנתם את המשפט האנגלי אתם צריכים לנסחו בעברית. עליכם לנסח בצורה קצרה ככל האפשר את המשפט (מבלי להשמיט דבר כמובן).
כל משפט שאתם כותבים צריך להישמע אמין בשפה העברית. ביטויים וסלנגים באנגלית יש לתרגם לביטויים וסלנגים מקבילים (אם יש) בעברית ולא לתרגם כפי שהם.
;דוגמא:
:Third time's a charm יתורגם כ"פעם שלישית גלידה" ולא כ"פעם שלישית קסומה".
;דוגמא נוספת:
: John Hancock זה סלנג לחתימה. ג'ון הנקוק היה אחד מהאבות המייסדים של ארצות הברית וחתימתו בעלת האותיות הגדולות בלטה במיוחד בהצהרת העצמאות של ארה"ב, וכך הפך שמו לשם נרדף ל"חתימה". אין זה אומר שעלינו לתרגם את המונח ל"דוד בן גוריון". אפשר להתאים אותו לביטוי מקביל בארץ - כמו "קשקוש" שפעמים רבות נאמר בהקשר של חתימה. אם לא עולה סלנג או ביטוי מקביל אז פשוט מתרגמים איך שזה, במקרה הזה - "חתימה".
צורות דיבור (figure of speech) אין לתרגם מילולית, כי לא כולן קיימות גם בעברית.
;למשל:
:I could sure go for a pizza right about now יתורגם כ"בהחלט יתאים לי לאכול פיצה עכשיו" ולא כ"אני בהחלט יכול ללכת על פיצה כרגע".
:lets go down to the factory יתורגם כ"בוא נלך למפעל" ולא "בוא נלך למטה, למפעל".
:I bet she has a cigarette יתורגם כ"אני בטוח שיש לה סיגריה" ולא "אני מתערב שיש לה סיגריה".
:I could use some holiday יתורגם כ"לא תזיק לי חופשה" ולא "אני יכול להשתמש בחופשה".
טעות נפוצה נוספת היא שימוש במילה "אני" או "אנחנו" בתחילת משפט פועל בעבר, שזה מיותר לחלוטין.
:I saw a film יתורגם כ"ראיתי סרט" ולא "אני ראיתי סרט".
:we just arrived יתורגם כ"בדיוק הגענו" ולא "אנחנו בדיוק הגענו".
רק אם יש דגש מסויים על זה שהדובר עשה פעולה מסויימת אז יש להשאיר את ה-אני\אנחנו.
;למשל:
:@@מי נסע לשם?
-אני נסעתי לשם.
מישהו ראה "אבודים"?
-אנחנו ראינו "אבודים", אבל אף אחד לא הבין.@@
!משלב לשוני
יש להתאים את גובה השפה אל המקור ואל הדובר. יש לא מעט מתרגמים שכל הדמויות שהם אי פעם יתרגמו ידברו בדיוק אותו הדבר, וזו טעות.
ילדים בני 12, חברי כנופייה או בורים כפריים לא ישתמשו במילים "היכן", "מדוע", "האם" או "מנין לך", וכך גם רובנו בחיי היום יום. אין סיבה להעניק להם שפה גבוהה יותר שלא לצורך.
ומאידך, אם אתם מתרגמים סרט שמתרחש בתקופות קדומות יותר (בין אם 50 שנה ובין אם 1,000 שנה), אל תתביישו להעלות את המשלב ולכתוב בשפה מליצית יותר (זה כיף).
השתדלו לא להפוך את התרגום ל"ישראלי מדי", ולהימנע ממילות סלנג ישראליות מדי כמו "סבבה" או "אשכרה" (על אף הדימיון למילה actually).
בסופו של דבר, המשפט שאתם כותבים צריך להישמע אמין מפי הדמות הדוברת.
:"איכס, הם מקללים! אני אייפה את זה".
;לא, אתה לא. יש נטייה מצערת להרבה מתרגמים, באינטרנט וב"ממסד" כאחד, לייפות (או "לכבס") את מה שנאמר. זו טעות.
כשדמות אומרת "we fucked" אין שום סיבה לייפות את זה ל"קיימנו יחסי מין", ויש לכתוב "הזדיינו". אל לנו להתבלבל בתפקידנו - אנחנו המתרגמים ולא התסריטאים. הרי התסריטאי יכול היה לכתוב "we had sex" אך הוא בחר שלא לעשות כך. אין זו זכותנו לשנות את הטקסט רק כי זה נראה לנו יפה יותר. עלינו להיצמד למקור ולרוח הדברים המקורית ככל האפשר. זה עובד גם בכיוון השני - למשל, אם אמרו penis אין סיבה לכתוב "זין" ויש להסתפק ב"איבר מין".
גם בסלנגים וקללות יש לבחור את המילה המתאימה. כדוגמא ניקח את המילה "faggot", שזה כינוי גנאי להומוסקסואלים. עם כל הרצון הטוב כלפי הקהילה, לתרגם מילה זו כ"הומו" היא טעות לכל דבר, והתרגום הנכון יהיה "מתרומם". זה לא הופך אותנו להומופובים, אלא למתרגמים טובים.
!לוקליזציה
חלק מהנתונים הכמותיים יש להעביר למדדים בהם משתמשים בישראל. כך מיילים יומרו לקילומטרים, אינצ'ים יומרו לס"מ, פאונדים יומרו לקילוגרמים, גלונים יהפכו לליטרים וכו'.
ההמרה תתבצע מדויק ככל האפשר מבלי לפגום באמינות ורוח הטקסט. מה זה אומר? מספר עגול ויפה במדד זר תמיד ייצא שבור ועשרוני בהמרה, לכן רמת הדיוק תלויה ברמת הדיוק במקור. אם המספר שנאמר במקור הוא כללי וזרוק, לא נתרגם למספר עשרוני ומדויק אלא ניתן את המספר הכללי הזרוק הכי קרוב. אם במקור ידייקו, נדייק גם אנחנו. כך למשל, מישהי שאומרת שהיא שוקלת 112 פאונד, בעברית היא תשקול 51 קילו. ולעומת זאת, אם מישהו צריך לטוס 8,000 מייל כדי להגיע ליעדו, בעברית הוא לא יטוס 12,874 ק"מ אלא 13,000 ק"מ.
כסף נשאר כפי שהוא, דולר נשאר דולר ולא הופך לשקל.
!הסברים בגוף התרגום
יש נטייה של הרבה מתרגמים לנסות להסביר ולפרש כל דבר, גם על חשבון אמינות הטקסט וכוונת המשורר. יש שורות שמראש לא נועדו להבנה של הקהל הרחב ומכילות מושגים טכניים הזויים, שפות זרות וכו'. התרגום הוא למעשה כלי שבעזרתו הצופה הישראלי יקבל בדיוק את אותו המידע כמו הצופה האמריקאי, והוא לא צריך להכיל הסברים נוספים. אם ישנם דברים שאמריקאי ממוצע יידע בעוד שישראלי כנראה לא ידע, אז ורק אז יש לשקול להוסיף הסבר. כאשר נתקלים במושגים שנשמעים לא מספיק ברור, יש לחשוב - "האם אמריקאי יבין מה זה אומר?". אם התשובה היא לא, יש להשאיר את המשפט עמום. לדוגמא:
כאשר מישהי אומרת שהיא מכינה מאכל הונגרי אתני בשם טוטה טויאש ("toltott tojas"), אין לתרגם את זה כ"ביצים ממולאות" אלא להשאיר "טוטה טויאש". הרי מרבית האמריקאים לא יודעים ש"טוטה טויאש" זה ביצים ממולאות, ולכן אין סיבה לבאר את זה.
כאשר מדוברות שפות שאינן אנגלית ללא כתוביות באנגלית על המסך - אין לתרגם אותן! אם כותבי 'אבודים' החליטו שמיכאיל יגיד כמה מילים ברוסית מבלי להוסיף כתוביות באנגלית - גם בעברית לא יהיו כתוביות. הרי אמריקאי מן היישוב לא מבין מה הוא מקשקש, אז למה שישראלי ידע? כאשר מילים זרות ומוכרות משולבות במשפט רגיל מאנגלית (למשל - מרסי, ווי, אולה, סניור, גרסיאס וכו'), אם מתאפשר מומלץ לשלב את המילים בתעתוק לעברית, למשל: "ראיתי שהוצאת את הזבל. מרסי".
משפטים קצת פחות מובנים זה חלק טבעי מהיצירה ואין צורך "להאכיל את הצופים בכפית". בחירתם של כותבי הסדרה היא שלהם, ושלהם בלבד. אם הם בחרו שכמה משפטים ידוברו בשפה שרוב הקהל לא יודע או להשתמש במושג שרוב הקהל לא מכיר - זו זכותם הבלעדית ואין לנו זכות לערער על בחירתם. כל הסבר מיותר למעשה פוגם ביצירה כפי שהיוצרים מסרו אותה. ולכן, כאמור, ההסברים המומלצים היחידים הם כאלה המגשרים על פער התרבויות בינינו לבין הצופה האמריקאי.
יחד עם זאת, יש גם לזכור שבכל זאת מדובר בסדרות וסרטים זרים, ולפעמים אי אפשר להסביר לצופה הישראלי כל דבר שנאמר, גם אם האמריקאי הממוצע כן יבין. תרגום שיסביר כל דבר ודבר יהיה מסורבל מאוד, ולכן אם מדובר בסרט או סדרה שנוהגים לאזכר דברים אמריקאיים בכמויות מסחריות - יש להשתדל להמעיט ככל הניתן בהסברים, מתוך הבנה שזאת בכל זאת יצירה לא ישראלית.
!!ההסבר - כיצד?
כשכן בוחרים להוסיף הסבר, רצוי להימנע מסוגריים אלא לנסות לשלב את ההסבר במשפט עצמו.
;דוגמא:
:המשפט באנגלית - "Geithner said on TV not to worry"
אם אינכם מעודכנים באקטואליה האמריקאית, עליכם לחפש מיהו גייטנר. במהרה תגלו שהוא שר האוצר האמריקאי. אם החלטתם שזה מידע שחשוב להסביר, המשפט בתרגום יהיה:
:שר האוצר גייטנר אמר בטלוויזיה שלא לדאוג.
;ולא
:גייטנר (שר האוצר) אמר בטלוויזיה שלא לדאוג.
!הגהה ובקרת איכות
תרגום הוא קובץ בן אלפי מילים. המורכבות הרבה של המלאכה, הכוללת הבנה מאנגלית וניסוח תקין ומתאים בעברית, הופכת את התרגום למועד לטעויות הרבה יותר מתוצרים אחרים (שגם להם עושים בקרת איכות). ועל כן, בקרת האיכות לתרגום היא חובה, ויש לבצע אותה לפני השחרור לרשת או ההעברה לשותף השני (או אם אתם נבחנים לצוות, אז לפני ההעברה לבוחן).
*1. הגהה: צפייה נוספת בתוכן המתורגם יחד עם התרגום, תוך כדי תיקון הדברים שעולים תוך כדי הצפייה. זו יכולה להיות טעות הקלדה, שורה שלא מסונכרנת היטב, טעות הבנה, פספוס שורה וכל דבר שאתם מעלים על הדעת. לרוב, בהגהה תמצאו את כל הנ"ל.
הגהה של מתרגם אחר משמעותה שהמתרגם השני עובר על התרגום שלכם, ומתקן את מה שצריך. בתרגומים משותפים, המתרגמים לרוב עושים הגהה זה לזה.
*2. הגהה יבשה: בנוסף (ולא במקום!) להגהה הנ"ל, מומלץ לבצע גם "הגהה יבשה", כלומר קריאת הטקסט ללא הווידאו. ההגהה היבשה מעניקה לנו אפשרות להסתכל על הטקסט ללא המקור האנגלי, ולוודא שהתרגום שלנו נשמע הגיוני גם בלעדיו. הגהה יבשה היא הזדמנות מצוינת לאתר את הניסוחים הבעייתיים ואת האנגלוזים (תרגום מילולי מדי) שלא נשמעים טוב בעברית שפספסנו בהגהה הרגילה. כמובן שזהו עוד שלב של בקרת איכות שבו אנו יכולים למצוא טעויות מכל הסוגים והצבעים.
לאחר מכן, ישנם עוד שני שלבים טכניים וקצרים, שכמו הנ"ל, מסייעים בהפחתת כמות השגיאות:
*3. בדיקת איות ב-Word: פתחו את קובץ ה-SRT בכתבן, העתיקו אותו כפי שהוא לתוך הוורד והריצו את בודק השגיאות. את התיקונים עשו בתוך ה-Subtitles Workshop, לא בוורד או בכתבן.
*4. בדיקת טעויות ב-Subtitles Workshop: לחיצה על Ctrl+i תציג בפניכם את הטעויות הקיימות בקובץ התרגום שלכם. כלי זה מוצא שורות חופפות (מבחינת זמנים), רווחים מיותרים, שורות קצרות מדי (מתחת לשנייה) ועוד. ברוב המקרים מומלץ לא לתת לכלי לתקן בעצמו את הטעויות, אלא להיעזר בו רק לאיתור הטעויות ולתקנן ידנית. שימו לב שיש דברים נורמטיביים לחלוטין שהכלי מזהה כשגיאה, כגון טקסט נטוי.
שלב בקרת האיכות אמנם קצר וקל יותר, אך חשיבותו גדולה, והוא הופך תרגום טוב למעולה. כאמור, תרגום הוא יצירה המורכבת מאלפי מילים, והסיכוי לטעויות ושגיאות הוא 100%. ככל שמקפידים יותר על שלב בקרת האיכות ומבצעים כל שלב ושלב בתשומת לב וביעילות, יותר ויותר טעויות ייחסכו מהתרגום הסופי. ההבדל בין תרגום בינוני לתרגום טוב ובין תרגום טוב לתרגום מעולה הוא כמות הטעויות, וטיבו של תרגום נמדד על פי כך.
''//בהצלחה!!!//''
!ראו גם...
[[טיפים למתרגם]]
!!!קרדיטים :
Godfather (מצוות QSUBS)
//If you use TiddlyWiki a lot, it may pay to learn these codes. The top five are essential to know. //
//~TiddlyWiki //
;CTRL ENTER
:Closes and accepts changes to the current tiddler being edited.
;ESCAPE
:Closes and discards changes to the current tiddler being edited.
//Cut, Copy, and Paste//
;CTRL X
:Cut the selected text to the clipboard
;CTRL C
:Copy the selected text to the clipboard
;CTRL V
:Paste the clipboard to the current cursor position
//Undo and Redo//
;CTRL Z
:Undo the last editing command
;CTRL Y
:Redo the last undo command
//Navigating Text//
;HOME
:Move cursor to the beginning of the current line
;END
:Move the cursor to the end of the current line
;CTRL HOME
:Move the cursor the very beginning of the current text field.
;CTRL END
:Move the cursor to the very end of the last line of the current text field.
;PAGE UP
:Moves the cursor up the same number of lines as is displayed in the textarea.
;PAGE DOWN
:Moves the cursor down the same number of lines as is displayed in the textarea.
;UP ARROW
:Move the cursor up one line to the current horizontal cursor position. If the current horizontal position doesn’t exist, the cursor will move to the end of the line.
;DOWN ARROW
:Move the cursor down one line to the current horizontal cursor position. If the current horizontal position doesn’t exist, the cursor will move to the end of the line.
;LEFT ARROW
:Moves the cursor one character to the left.
;RIGHT ARROW
:Moves the cursor one character to the right.
;CTRL RIGHT ARROW
:Moves the cursor one word to the right, placing the cursor before the first letter of the next word.
;CTRL LEFT ARROW
:Moves the cursor one word to the left, placing the cursor before the first letter of the previous word.
//Selecting Text//
;CTRL A
:Selects everything in a text area.
;SHIFT HOME
:Selects all text from the cursor to the beginning of the current line.
;SHIFT END
:Selects all text from the cursor to the end of the current line.
;SHIFT CTRL HOME
:Selects all text from the cursor the very beginning of the current text field.
;SHIFT CTRL END
:Selects all text from the cursor to the very end of the last line of the current text field.
;SHIFT PAGE UP
:Selects all text from the cursor up the same number of lines as is displayed in the textarea.
;SHIFT PAGE DOWN
:Selects all text from the cursor down the same number of lines as is displayed in the textarea.
;SHIFT UP ARROW -
:Selects all text from the cursor up one line to the current horizontal cursor position. If the current horizontal position doesn’t exist on that line, the cursor will selects all text from the end of the line.
;SHIFT DOWN ARROW
:Selects all text from the cursor down one line to the current horizontal cursor position. If the current horizontal position doesn’t exist on that line, the cursor will Selects all text to the end of the line.
;SHIFT LEFT ARROW
:Selects one character to the left of the cursor.
;SHIFT RIGHT ARROW
:Selects one character to the right of the cursor.
;SHIFT CTRL RIGHT ARROW
:Selects all characters from the cursor to the first letter of the next word.
;SHIFT CTRL LEFT ARROW
:Selects all characters from the cursor to the first letter of the previous word.
<<showtoc>>
!Inline Formatting
|!Option|!Syntax|!Output|
|bold font|{{{''bold''}}}|''bold''|
|italic type|{{{//italic//}}}|//italic//|
|underlined text|{{{__underlined__}}}|__underlined__|
|strikethrough text|{{{--strikethrough--}}}|--strikethrough--|
|superscript text|{{{^^super^^script}}}|^^super^^script|
|subscript text|{{{~~sub~~script}}}|~~sub~~script|
|highlighted text|{{{@@highlighted@@}}}|@@highlighted@@|
|preformatted text|<html><code>{{{preformatted}}}</code></html>|{{{preformatted}}}|
!Block Elements
!!Headings
{{{
!Heading 1
!!Heading 2
!!!Heading 3
!!!!Heading 4
!!!!!Heading 5
}}}
<<<
!Heading 1
!!Heading 2
!!!Heading 3
!!!!Heading 4
!!!!!Heading 5
<<<
!!Lists
{{{
* unordered list, level 1
** unordered list, level 2
*** unordered list, level 3
# ordered list, level 1
## ordered list, level 2
### ordered list, level 3
; definition list, term
: definition list, description
}}}
<<<
* unordered list, level 1
** unordered list, level 2
*** unordered list, level 3
# ordered list, level 1
## ordered list, level 2
### ordered list, level 3
; definition list, term
: definition list, description
<<<
!!Blockquotes
{{{
> blockquote, level 1
>> blockquote, level 2
>>> blockquote, level 3
<<<
blockquote
<<<
}}}
<<<
> blockquote, level 1
>> blockquote, level 2
>>> blockquote, level 3
> blockquote
<<<
!!Preformatted Text
<html><pre>
{{{
preformatted (e.g. code)
}}}
</pre></html>
<<<
{{{
preformatted (e.g. code)
}}}
<<<
!!Tables
{{{
|CssClass|k
|!heading column 1|!heading column 2|
|row 1, column 1|row 1, column 2|
|row 2, column 1|row 2, column 2|
|>|COLSPAN|
|ROWSPAN| … |
|~| … |
|CssProperty:value;…| … |
|caption|c
}}}
''Annotation:''
* The {{{>}}} marker creates a "colspan", causing the current cell to merge with the one to the right.
* The {{{~}}} marker creates a "rowspan", causing the current cell to merge with the one above.
<<<
|CssClass|k
|!heading column 1|!heading column 2|
|row 1, column 1|row 1, column 2|
|row 2, column 1|row 2, column 2|
|>|COLSPAN|
|ROWSPAN| … |
|~| … |
|CssProperty:value;…| … |
|caption|c
<<<
!!Images /% TODO %/
cf. [[TiddlyWiki.com|http://www.tiddlywiki.com/#EmbeddedImages]]
!Hyperlinks
* [[WikiWords|WikiWord]] are automatically transformed to hyperlinks to the respective tiddler
** the automatic transformation can be suppressed by preceding the respective WikiWord with a tilde ({{{~}}}): {{{~WikiWord}}}
* [[PrettyLinks]] are enclosed in square brackets and contain the desired tiddler name: {{{[[tiddler name]]}}}
** optionally, a custom title or description can be added, separated by a pipe character ({{{|}}}): {{{[[title|target]]}}}<br>''N.B.:'' In this case, the target can also be any website (i.e. URL).
!Custom Styling
* {{{@@CssProperty:value;CssProperty:value;…@@}}}<br>''N.B.:'' CSS color definitions should use lowercase letters to prevent the inadvertent creation of WikiWords.
* <html><code>{{customCssClass{…}}}</code></html>
* raw HTML can be inserted by enclosing the respective code in HTML tags: {{{<html> … </html>}}}
!Special Markers
* {{{<br>}}} forces a manual line break
* {{{----}}} creates a horizontal ruler
* [[HTML entities|http://www.tiddlywiki.com/#HtmlEntities]]
* {{{<<macroName>>}}} calls the respective [[macro|Macros]]
* To hide text within a tiddler so that it is not displayed, it can be wrapped in {{{/%}}} and {{{%/}}}.<br/>This can be a useful trick for hiding drafts or annotating complex markup.
* To prevent wiki markup from taking effect for a particular section, that section can be enclosed in three double quotes: e.g. {{{"""WikiWord"""}}}.
{{{@@color(green):green colored@@}}}
@@color(green):green colored@@
!Text Indents
{{{
";" for bold word
":" for its indented definition
}}}
;This is the word
:This is its indented definition
;This is the next entry in the word list
:This is its indented definitionThis is its indented definitionThis is its indented definitionThis is its indented definitionThis is its indented definitionThis is its indented definitionThis is its indented definitionThis is its indented definitionThis is its indented definitionThis is its indented definitionThis is its indented definition
{{{
@@font-size:90%;Font size :@@
}}}
@@font-size:90%;Font size :@@
@@font-size:130%;Font size :@@
!המילון לשפה המעודכנת לסלנג של ימינו
;אחי ורעי, יקירי
:אחי, אח שלי
;אין בלתו, מעורר התפעלות
:סוף הדרך! משהו! פיצוץ!
;אמת לאמיתה, דברים כהווייתם
:וואלה, אשכרה, ראסמי
;אנדרלמוסיה, כמרקחה, בוקה ומבולקה
:בלגאנים, עניינים
;אני משתאה, תדהמה אחזה בי
:אני בשוק, אני בהלם, אני המום
;אפסה תקוותו, ירד לטמיון
:הלך עליו, הלך לעזאזל
;אהובי, בבת עיני, מחמד לבי
:כפרה, נשמה, עיניים שלי
;בחפץ לב, בעונג
:בכיף, בסבבה
;ברצינות?
:בחייאת ראבק!
;גרוע
:על הפנים, דפוק
;ערמומי
:תחמן, נחש
;גנב, רמאי
:ש"סניק
;יפה נפש
:שמאלני
;מתעלם
:מסנן
;לא בריא נפשית
:חולה בראש
;האיש הוזה, באשליה
:חי בסרט
;נבהלתי
:נכנסתי לסרטים, אכלתי סרטים
;האומנם? היתכן?
:באימא שלך? בחייאת ראבק!
;הוא מאס ב..., הגיעו מים עד נפש
:נשבר לו
;הלבין את פניו, שילח בו חצים
:ירד עליו, כיסח אותו, הרס אותו
;הלצות, דברי בדיחותא
:דאחקות, צחוקים
;המיטב שבמיטב, כפתור ופרח
:חבל על הזמן, ענק
;יחיד במינו, מיוחד
:קול, גזעי
;יישר כוח!
:סאחה, סחתיין
;יצא בפחי נפש
:התבאס, מבואס
;יצא וידו על העליונה
:יצא גבר, יצא מלך
;יצא וידו על התחתונה
:יצא פראייר, יצא פיסטוק
;יצא מדעתו, דעתו התבלבלה עליו
:התחרפן, נפל על השכל
;בייש אותו בפומבי
:ייבש אותו מול כולם
;כהרף עין, במהירות הבזק
:תיק-תק, צ'יק צ'ק
;זילזל
:חיפף
;הונאה
:עוקץ
;מכר להם ביוקר
:שחט אותם
;החל את דבריך
:שוט
;סיים את דבריך
:תקתק
;מהו עיקר הדברים?
:מה הפואנטה? מה הרעיון? מה הביזנס?
;כפי ש... כלומר
:כאילו
;לא עמד בדיבורו
:דפק ברז, הבריז
;אין ברצוני
:לא בא לי
;עיצבן אותי
:העלה לי את הסעיף, הביא לי את הגניבה, העלה לי את הג'ננה
;לא מוצא חן בעיני
:לא בא לי טוב
;תלך מכאן, תעזוב את המקום
:ת'חפף מפה, ס'תלק מכאן, תעוף מפה
;היכה אותו בחוזקה
:קרע/שיפד אותו
;עולמו חרב עליו
:האיש הרוס
;אני מאושר עד מאוד
:אני בטירוף
;אני עייף, עייפתי
:אני גמור, אני מת מעייפות
;לא חשוב
:חפיף, בקטנה
;אל תתמהמה
:אל תייבש אותי
;אל תשקר לי
:אל תעבוד עלי, אל תזיין לי ת'מוח
;אל תשחית את זמני
:אל תחפור לי, אל תזיין לי ת'שכל
;הבחור מוצלח
:הבחור ענק, אין עליו
;מדהים, משובב נפש
:מגניב, מטריף, סוף הדרך
;נאה, יפיפייה
:כוסית, סוקית, פצצה, כססה
;בקול רם
:בפול ווליום
;התלהבות
:אש בעיניים
;היה שמח, היה כיף
:היה אש, היה אחלה, היה פיצוץ
;הילד מוכשר/מוצלח
:הילד ענק
;לא יוצלח
:לוזר, אפס
;אתה נהדר
:אתה מלך
;אני אוהב אותך
:אני חולה/מת עלייך
;יישבו את ההדורים
:סגרו עניין
;תיזהר לך
:דיר באלק
;אני מוותר על הקשר איתך
:לך חפש ת'חברים ש'ך
;תיקנתי
:שיפצרתי
;הלשין/פטפט בחקירה
:זימר
;שטויות
:חארטות
;לא יתכן
:אין מצב
;מדוע ולמה?
:למה מי מת?
;ללא כחל וסרק
:דוגרי , אשכרה
;שלומי לעילא ולעילא
:שלומי אחלה, סבבה
;מקורי, אמיתי
:אורגינל, אסלי
;משתוקק ל..., נפשו יוצאת ל...
:חולה על..., מת על...
;לא נורא
:בקטנה
;נרגן, מעצבן, דביק/טפיל
:קוטר, נודניק, קרציה
;לא דייקת בדבריך
:מה זה...? (נאמר בצעקה, עם סילסול), בחיייייאת?!
;עדכני, נס ליחו
:אין/אאוט
;עיקרו של דבר, תכלית העניין
:תכל'ס, שורה תחתונה
;פגע בו במזיד, נהג בו איפה ואיפה
:דפק אותו
;צחקתי עד דמעות
:נקרעתי, נשפכתי מצחוק
;ראוי לציון!
:גדול! ענק!
;שובה לב, מעודד, משובב נפש
:מגניב, מהמם
;זמני אינו פנוי
:אני עמוס, אני מפוצץ
;הנקודה המעניינת בסיפור
:הקטע פה ש...
;ציצים ופרחים, דברי טעם
:חפירות ארכאולוגיות
;שקדן, למדן, הולך בתלם
:חננה, חנון, חרשן, חפרן, מרובע
!!!קרדיטים
yoni054 (משתתפים)
!קישורים
<<tagging קישורים>>
!קרדיטים
!דיון מעניין בנושא קללות בעברית :
[[חתיכת חרא|http://www.tapuz.co.il/blog/net/ViewEntry.aspx?EntryId=1287091&skip=1]]
[[הכל אודות חרא|http://www.ynet.co.il/articles/0,7340,L-3566088,00.html]]
!ראו גם...
[[Fuck - שימושים שונים והטיות]]
!!!קרדיטים
rodneymckay ( מצוות EXTREME)
;תודות רבות לכל התורמים מהידע והזמן שלהם עבור קהילת התרגום והמתרגמים!
!רשימת קרדיטים לפי סדר א'-ב' :
@@''//__ת ו כ ן - ה ע נ י י נ י ם__//''@@
<<showtoc>>
----
!מין או מן?
"מן" היא מילת יחס (כמו מ), "מין" זה סוג או סקס (ופירוש יותר נדיר: כופר בדתו).
הוא יצא מן הבית (=הוא יצא מהבית)
יחיד במינו (=מיוחד מאוד, אין שני לו)
לא ממין העניין (=לא רלוונטי, לא קשור)
!לומר או לאמור?
לומר היא הדרך התקנית והמקובלת לכתוב את המילה שמבטאים אותה lomar.
לאמור (מבטאים lemor ולא lomar) היא מילה ברובד המקראי של העברית, ואם הדמויות שלכם
דוברות שפה עכשוית (ואינן, למשל, מצטטות מהתנ"ך) זה לא מתאים להשתמש בה.
!אדוק או הדוק?
אדוק - אדם המקיים בקפדנות את מצוות הדת.
הדוק - צמוד, קשור היטב, למשל חולצה הדוקה היא חולצה צמודה לגוף.
!דרמטי או דרמתי?
הכתיב הנכון של המילה הוא רק ב-ט'.
!השכמה או השקמה?
הכתיב הנכון הוא ב-כ'.
!החיל או הכיל?
הכיל - כלל בתוכו, למשל: החדר הכיל לכל היותר עשרה אנשים.
החיל - גרם למשהו לחול על, להיות תקף לגבי, למשל: בית המשפט החיל את החוק גם על ידועים בציבור.
!פיכח או פיקח?
פיקח - smart, clever
פיכח - sober, אדם שהוא לא שיכור.
!טעה או תעה?
טעה - עשה טעות.
תעה - הלך לאיבוד, כמו בביטויים "תועה באפלה", "תועה בדרך".
!לאחסן או לאכסן?
נהוג לאחסן סחורה במחסן, ולאכסן אנשים באכסניה.
!טחנה או תחנה?
טחנת רוח = מקום שבו טוחנים חיטה לקמח ע"י שימוש באנרגיית הרוח.
לעומת:
תחנת אוטובוס, תחנת רכבת, תחנת משטרה, תחנת כוח.
!טפל או תפל?
טפל - לא חשוב, למשל "להבחין בין עיקר לטפל".
תפל - חסר טעם או חסר מלח, למשל "אוכל תפל", "התפלת מי ים".
!השהיה או השעיה?
השהיה - עיכוב או דחיה.
השעיה - הפסקת עבודתו או שירותו של מישהו שהואשם במשהו עד לבירור אשמתו.
!משהו/מישהו/מישהי
כותבים כך, ללא א' בסוף.
!בתו או ביתו?
בתו = הבת שלו. ילדתו.
ביתו = הבית שלו. מעונו.
!מעולם או לעולם?
__מ__עולם - מתייחס לעבר. __ל__עולם - מתייחס לעתיד.
:מעולם לא היה כדבר הזה, לעולם גם לא יהיה.
!ראו גם
[[האקדמיה ללשון]]
!!!קרדיטים
אלמוני_פלמוני (מתרגמים פרטיים)
~StringTheory (מתרגמים פרטיים)
!רשימה כוללת לפי סדר הא'-ב'
<<list>>
!רשימת כל התגיות לפי סדר הא'-ב'
<<allTags>>